我们在用PHPCMS建站时会遇到网站部分内容需要替换的问题,比如我们采集别人的网站,花了大半天才采集完,然后发现把别人的网站信息(联系电话、网站名字等)也原封不动的抄过来了,这时是相当的郁闷,删除掉重新采集吧,有点浪费时间。
一般我们可以有2种方法来解决,一是直接在数据库里面批量替换;二是在模板里面替换。今天我们来分享的是后面种办法,毕竟第一种办法有点简单粗暴,稍微操作不慎可能把数据库也弄坏而造成网站瘫痪了。
适应于以下情况
- 栏目URL不出现index.html等后缀
- 用了伪静态结构发生了变化
- 网站信息由变得(如公司地址搬迁了、联系方式变了)
- ……
在PHPCMS官网论坛搜了一下,没有找到自带的替换函数,只看到有个字符串截取的str_cut,用法:{str_cut($r[content],60)},如果要去掉html代码的话那就是:{str_cut(strip_tags($r[content]),60)}。
没有现成的标签可以用,那就只能用PHP的这2个函数了:str_replace和preg_replace。(据说str_replace效率比较高)
把文章内容中的“我爱你”变成“我爱中国”
<?php $content=str_replace('我爱你','我爱中国',$content); echo $content;?>
把文章内容中的“我爱你”、“我饿了”对应变成“我爱中国”、“我吃饱了”
<?php $content=str_replace(array('我爱你','我饿了'),array('我爱中国','我吃饱了'),$content); echo $content;?>
我们知道{catpos($catid)}这个标签是显示当前位置的,要是我想把网址中的html去掉又改怎么弄呢?很多朋友说那还不简单!代码是这样呗:
{catpos(str_replace('/html','',$catid))}
<?php $url=str_replace('/html','',$catid); echo catpos($url);?>
结果测试,上面的代码都是不行的!正确的代码是这样的:
{php $c_url = catpos($catid);}
<?php $url=str_replace('/html','',$c_url); echo $url;?>