存档

文章标签 ‘sitemap中文路径’

phpcms中文路径 之 sitemap中文路径处理

2010年3月17日 没有评论

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']);

 

这样就搞定了。