Türkçe karakter sorununu çözen scriptin orjinali:
//-- [+] phpBB SEO keyword URLs ------------------------------------------
//
function make_url_friendly($url)
{
$url = trim($url);
$url = strtolower($url);
$find = array('<b>', '</b>');
$url = str_replace ($find, '', $url);
$url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
$find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
$url = str_replace ($find, '-', $url);
$find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
$url = str_replace ($find, 'e', $url);
$find = array('í', 'ı', 'ì', 'î', 'ï', 'I', 'İ', 'Í', 'Ì', 'Î', 'Ï');
$url = str_replace ($find, 'i', $url);
$find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
$url = str_replace ($find, 'o', $url);
$find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
$url = str_replace ($find, 'a', $url);
$find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
$url = str_replace ($find, 'u', $url);
$find = array('ç', 'Ç');
$url = str_replace ($find, 'c', $url);
$find = array('ş', 'Ş');
$url = str_replace ($find, 's', $url);
$find = array('ğ', 'Ğ');
$url = str_replace ($find, 'g', $url);
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
$url = str_replace ('--', '-', $url);
return $url;
}
//
//-- [-] phpBB SEO keyword URLs ------------------------------------------Sitemap modülünün ilgili bölümünün orjinali:
function topic_map($seomod)
{
global $db, $user;
$t_xml = null;
$sql = 'SELECT topic_id, topic_title, topic_last_post_time FROM '. TOPICS_TABLE;
$result = $db->sql_query($sql);
while ($data = $db->sql_fetchrow($result))
{
$lastpost = $user->format_date($data['topic_last_post_time'], "Y-m-d");
$t_xml .= '<url>'."\r\n";
if ($seomod == true)
{
$topicname = clean_url($data['topic_title']);
$topicname = clean_for_xml($topicname);
$t_xml .= '<loc>'.FORUM_DOMAIN_ROOT.$topicname.'-t'.$data['topic_id'].'.html</loc>'."\r\n";
}
else
{
$t_xml .= '<loc>'.FORUM_DOMAIN_ROOT.'viewtopic.php?t='.$data['topic_id'].'</loc>'."\r\n";
}
$t_xml .= '<lastmod>'.$lastpost.'</lastmod>'."\r\n";
$t_xml .= '<changefreq>daily</changefreq>'."\r\n";
$t_xml .= '<priority>0.5</priority>'."\r\n";
$t_xml .= '</url>'."\r\n";
}
return $t_xml;
}Bunları kullanarak benim yaptığım deneme:
function topic_map($seomod)
{
global $db, $user;
$t_xml = null;
$sql = 'SELECT topic_id, topic_title, topic_last_post_time FROM '. TOPICS_TABLE;
$result = $db->sql_query($sql);
$seoicinurl = $data['topic_title'];
//-- [+] phpBB SEO keyword URLs ------------------------------------------
//
function make_url_friendly($seoicinurl)
{
$seoicinurl = trim($seoicinurl);
$seoicinurl = strtolower($seoicinurl);
$find = array('<b>', '</b>');
$seoicinurl = str_replace ($find, '', $seoicinurl);
$seoicinurl = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $seoicinurl);
$find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
$seoicinurl = str_replace ($find, '-', $seoicinurl);
$find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
$seoicinurl = str_replace ($find, 'e', $seoicinurl);
$find = array('í', 'ı', 'ì', 'î', 'ï', 'I', 'İ', 'Í', 'Ì', 'Î', 'Ï');
$seoicinurl = str_replace ($find, 'i', $seoicinurl);
$find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
$seoicinurl = str_replace ($find, 'o', $seoicinurl);
$find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
$seoicinurl = str_replace ($find, 'a', $seoicinurl);
$find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
$seoicinurl = str_replace ($find, 'u', $seoicinurl);
$find = array('ç', 'Ç');
$seoicinurl = str_replace ($find, 'c', $seoicinurl);
$find = array('ş', 'Ş');
$seoicinurl = str_replace ($find, 's', $seoicinurl);
$find = array('ğ', 'Ğ');
$seoicinurl = str_replace ($find, 'g', $seoicinurl);
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$seoicinurl = preg_replace ($find, $repl, $seoicinurl);
$seoicinurl = str_replace ('--', '-', $seoicinurl);
return $seoicinurl;
}
//
//-- [-] phpBB SEO keyword URLs ------------------------------------------
while ($data = $db->sql_fetchrow($result))
{
$lastpost = $user->format_date($data['topic_last_post_time'], "Y-m-d");
$t_xml .= '<url>'."\r\n";
if ($seomod == true)
{
$t_xml .= '<loc>'.FORUM_DOMAIN_ROOT.$seoicinurl.'-t'.$data['topic_id'].'.html</loc>'."\r\n";
}
else
{
$t_xml .= '<loc>'.FORUM_DOMAIN_ROOT.'viewtopic.php?t='.$data['topic_id'].'</loc>'."\r\n";
}
$t_xml .= '<lastmod>'.$lastpost.'</lastmod>'."\r\n";
$t_xml .= '<changefreq>daily</changefreq>'."\r\n";
$t_xml .= '<priority>0.5</priority>'."\r\n";
$t_xml .= '</url>'."\r\n";
}
return $t_xml;
}Sonuç olarak seo olarak çıkarılması gereken kelimelerin yerinde hiçbirşey çıkmıyor.