使用phpcms c9为自己网站程序的朋友都会有一些困惑,其中phpcms v9关键词(Keyword)自动把空格变成逗号分割符的问题一直都没有解决,虽然Keyword不怎么使用了无所谓,不过如果用关键词来添加相关文章等功能的时候,空格变成分割符的问题还是比较麻烦的,其实解决起来也不麻烦,修改一下原文件就可以了。
PHPCMS v9的关键字分割方式是空格和,,这种分割方式不合理,比如我要将PHPCMS V9 作为一个关键词,那么分割就出现了问题,所以需要修改为,进行分割。
分享一下我的修改方法:
第一步:
修改/phpcms/libs/functions/global.func.php ,
搜索
if (!empty($keyword)) $keyword = str_replace(' ', ',', strip_tags($keyword));
替换为:
if (!empty($keyword)) $keyword = strip_tags($keyword);
大概的位置在:1519行处。
第二步:
将根目录下api/get_keywords.php内容替换为如下内容即可。
/**
* 获取关键字接口
*/
defined('IN_PHPCMS') or exit('No permission resources.');
define('API_URL_GET_KEYWORDS', 'http://tool.phpcms.cn/api/get_keywords.php');
$number = intval($_GET['number']);
$data = $_POST['data'];
echo get_keywords($data, $number);
function get_keywords($data, $number = 3) {
$data = trim(strip_tags($data));
if(empty($data)) return '';
$http = pc_base::load_sys_class('http');
if(CHARSET != 'utf-8') {
$data = iconv('utf-8', CHARSET, $data);
} else {
$data = iconv('utf-8', 'gbk', $data);
}
$http->post(API_URL_GET_KEYWORDS, array('siteurl'=>SITE_URL, 'charset'=>CHARSET, 'data'=>$data, 'number'=>$number));
if($http->is_ok()) {
$returnDate = str_replace(' ', ',', $http->get_data());
if(CHARSET != 'utf-8') {
return $returnDate;
} else {
return iconv('gbk', 'utf-8', $returnDate);
}
}
return '';
}
?>
以上基于Phpcms V9.1.12 Release 20120110 GBK版本修改。其他版本修改方式差不多。如果需要utf-8版本的话,则将如上代码复制之后进行转码即可。 |
也要中以设置为这样,把空格去掉或是换成其它就可以了。
if (!empty($keyword)) $keyword = str_replace(' ', ',', strip_tags($keyword));
英文网站中,这样修改即可。关键词调用就正常了。
if (!empty($keyword)) $keyword = str_replace(',', ',', strip_tags($keyword));