phpcms中文路径 之 sitemap中文路径处理
phpcms的sitemaps怎样支持中文路径呢?
昨天我们谈了 phpcms怎样支持中文路径呢?phpcms中文URL要怎样设置呢?
今天我们来处理下 phpcms的sitemaps如何支持中文路径。
首先,我们在 include 目录下,打开 global.func.php 文件
添加下面的一个函数。
function urlcode($url)
{
if (empty($url)) return;
$url = urlencode(trim($url));
$url = str_replace('%2F','/',$url);
$url = str_replace('%3A',':',$url);
$url = str_replace('+',' ',$url);
return $url;
}
然后再修改 include->admin 目录下的 sitemaps.class.php 文件。
这里面,我们找到 $item->loc = htmlentities($item->loc, ENT_QUOTES); 这一行。修改成下面的一行
$item->loc = $item->loc;
再去根目录下 ->admin 目录下,找到 googlemap.inc.php 文件。中的 下面的代码
if(!preg_match(‘/http:\/\//’,$r['url']))
{
$url = $domain.$r['url'];
}
else
{
$url = $r['url'];
}
在该代码下面添加一句
$url = urlcode($url);
OK。 针对phpcms sitemaps 中文路径就可以实现了。
phpcms还针对百度新闻有baidunews.xml文件。同样也需要处理一下。
我们打开 include -> admin 目录下 baidunews.class.php 文件。
找到 $link = htmlspecialchars($link); 一行,修改为 $link = urlcode($link);
这样就可以了。
同时,我发现 baidunews.xml文件 中 keyword 和 description 都带有连接。
我们也可以稍作处理。
只需要将 $description = htmlspecialchars(strip_tags($data['description'])); 替换成
$description = htmlspecialchars(strip_tags($r['description']));
再将 $keywords = htmlspecialchars($data['keywords']); 替换成
$keywords = htmlspecialchars($r['keywords']);
这样就搞定了。
