PHPCMS 使用心得与技巧,以及小BUG的纠正

PHPCMS 使用心得与技巧,以及小BUG的纠正,第1张

PHPCMS使用心得与技巧,以及小BUG的纠正

PHPCMS是一个非常强大的开源网站,我认为它可以用来开发我以前做过的大多数新项目。

用PHPCMS开发的第一个新项目是一个素材图片类网址www.penshow.cn,往往选PHPCMS可能是由于看过她的上百万级的数据测试汇报。而以后,我越用觉得也越非常好。自然,期内遇到过许多难题,汇总了一下,便捷之后开发。(版本:phpcms2008sp3_gbk)

综合性难题

应用GET标识时静态数据分页查询失败及其分页查询详细地址会连接到后台管理

文档:/include/global.func.php
涵数:pages
在if($curr_page>0)前加上$url=load('url.class.php'),以下:
$url=load('url.class.php');
if($curr_page>0)
要是加上一行编码就解决了,而在网络上找的解决方案却比较复杂,好烦闷!

而分页查询详细地址会连接到后台管理则只必须将下列的第一行代码换成第二行就OK了,自然,提议把第一行注解掉,再加上第二行。

复制代码编码以下:
$multipage.='<u>'.$pages.'</u><ahref="'.pageurl($urlrule,$curr_page,$array).'">下一页</a>';
$multipage.=$catid?'<u>'.$pages.'</u><ahref="'.$url->category($catid,$curr_page,1,1).'">下一页</a>':'<u>'.$pages.'</u><ahref="'.pageurl($urlrule,$curr_page,$array).'">下一页</a>';

文件上传途径改动

文档:include/attachment.class.php
寻找$this->savepath和$dir这两个自变量,下列是改动后的值,途径为“uploadfile/年/月/日/”:
$this->savepath=UPLOAD_ROOT.date('Y/md/');
$dir=date('Y/m/d/',TIME);

将缩列图储存到独立的文件夹名称,这样子也便于管理
文档:/include/global.func.php
$newimgurl=dirname($imgurl).'/thumb/thumb_'.$width.'_'.$height.'_'.basename($imgurl);

文档:/include/attachment.class.php
下列是get_thumb涵数改动后的编码

复制代码编码以下:
functionget_thumb($image)
{
/*缩列图文件夹名称*/
$thumbdir=dirname($image).'/thumb';
if(!file_exists($thumbdir))mkdir($thumbdir,0700);
returndirname($image).'/thumb/thumb_'.basename($image);
//returnstr_replace('.','_thumb.',$image);
}

BUG(UPLOAD_PATH不会有)

想不起来报哪些不对,总之之后我是立即把UPLOAD_PATH这一变量定义删除,最终就一切正常了。有了解提醒什么错误的请留个言。
提醒不正确:Warning:mkdir()[function.mkdir]:Nosuchfileordirectoryin...相近这样子的
要是把UPLOAD_PATH除掉随后升级缓存文件,一切正常。

/include/fields/images/output.inc.php
$thumb=UPLOAD_URL.$attachment->get_thumb(UPLOAD_PATH.$a['filepath']);

全站搜索数最多显示信息的纪录数

PHPCMS的全站搜索很强劲,好像能适用上百万级的信息量。一般,百度搜索不用輸出所有纪录数的,因此我将检索輸出結果设定为数最多1000条(早已许多了,GOOGLE都没这么多,呵呵呵),下列是改动后的一部分编码。

复制代码编码以下:
文档:/search/index.php
$page=max(intval($page),1);
$page=$page>100?100:$page;(提升了这方面编码)
文档:/search/include/search.class.php
$this->total=cache_count("SELECTCOUNT(*)AS`count`FROM`$this->table`WHERE$where");
$this->total=$this->total>1000?1000:$this->total;(提升了这方面编码)


收集控制模块

该如何去设定收集标准就很少讲过,官方网有详解:http://www.phpcms.cn/2009/0522/220.html

必须收集得话应用GBK版本的PHPCMS

用过用UTF-8版本的去收集,結果无论怎样调,采回来的汉语全是错码,好烦闷。沒有深入分析,改投GBK。

改动收集照片和压缩包时的储存途径

文档:/spider/include/get_remotefiles.func.php
涵数:do_saveremotefiles
改动涵数中下列2个自变量;下列就是我改动后的結果,储存途径为“uploadfile/年/月/日/”:

复制代码编码以下:
$filepath=PHPCMS_PATH.$uploaddir.'/'.date('Y/m/d').'/';
$uploaddir=PHPCMS_ROOT.'/'.$uploaddir.'/'.date('Y/m/d').'/';

收集內容时没法远程控制存图

src前的空格符造成了照片在收集內容时收集不上,仅有在公布时才可以收集获得。
文档:/spider/include/get_remotefiles.func.php
涵数:get_remotefileurls
下列分别是改动前和改动后的编码,留意src前的空格符,要是把空格符除掉就OK了。

复制代码编码以下:
if(!preg_match_all("/<(?:a|img).?(href|src)=([\"|']?)([^\"'>]\.($ext))\\2/i",$string,$matches))
if(!preg_match_all("/<(?:a|img).?(href|src)=([\"|']?)([^\"'>]\.($ext))\\2/i",$string,$matches))

远程控制储存非內容中的照片和文档

收集控制模块默认设置总是储存“內容”标识中的照片和文档,而其他标识中无论出現几回img或a都不容易被收集。假如你必须把照片和文档各自储存到其他字段名,这一改动好像挺有效的。
文档:/spider/admin/mainspider.inc.php
个数:372行
下列是改动結果:

复制代码编码以下:
$v=get_remotefiles($v,'gif|jpg|jpeg|bmp|png|rar|zip',$dourl,$basehref,true);

爬取不上网页页面时收集情况改成未收集

假如被收集网址不稳定,有时候会出現爬取不上收集网页页面的状况,而这时收集情况依然会被标识为已收集。因此要是小小的改动一下,大家会便捷许多。
文档:/spider/admin/mainspider.inc.php
个数:664行
下列是改动結果,加上了“&&(trim($body)!=''”这一句:

复制代码编码以下:
if(($body!=$LANG['title_or_content_null'])&&(trim($body)!=''))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/773035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存