php 广告过滤器,过滤器 - AKCMS参考手册

注意:AKCMS已于2019年12月27日宣布停止更新,此文档仅供老用户参考,不建议新用户选择AKCMS建站。

注意:AKCMS6.1.2已取消授权机制,文档中关于授权、服务、技术支持等的内容均已失效。

过滤器是AKCMS3.9.5新增的高级功能,有点类似于Linux和DOS的管线操作,允许用户更加灵活的控制网站,下面通过几个应用实例了解一下:

应用1:采集内容时替换文字

数据源中常常有网站名称,如果将这些内容也一起采集的话就会贻笑大方了。过滤器这时候就派上用场了:首先创建一个过滤器(下同),规则这样写:

replace:网易汽车|某某汽车

replace:网易|某某网

然后在采集规则设置中应用这个过滤器即可。

应用2:页面HTML替换

有时候需要一个整站全局的替换,比如在两会前后把敏感词全部替换为文明用语。规则这样写:

replace:自由|文明用语

replace:民主|文明用语

然后再在相关模板的最后一行写上“”(1代表具体的过滤器ID,下同),如果很多个模板都要过滤,可以把这一行放在一个子模板里,然后每个模板都引用这个子模板,在完成替换后会被删除,对您的网页没有任何影响。

应用3:跨编码采集

有时候网站与待采集数据源编码不一致,导致无法采集或者采集到乱码。规则这样写:

php:gbktoutf8($input);

然后在采集规则中使用这个过滤器就可以在采集到HTML后,先做转码再分析内容和入库操作。(服务器需安装iconv组件)

应用4:同时提供两种编码的网页

假设网站是GBK的,但是rss输出希望使用UTF-8编码,如果直接输出一定会是乱码。过滤器规则这样写:

php:gbktoutf8($input);

然后在模板的最后一行写上就可以了

应用5:伪原创之同义词替换

伪原创常见的一个思路就是同义词替换,过滤器可以实现这个需求。过滤规则中像前文说的一样的左边是原词,右边是替换后的词,中间用竖线隔开,一行一个。如果词较少,可以在显示时替换,具体做法是在模板中最后一行写上“”;如果词较多显示时替换就慢了,建议在采集时替换,在采集规则中选择这个过滤器即可。

应用6:给商品链接加上广告代码

假设你的网站和图书有关,内容中常常有指向当当网图书购买页面的链接,用过滤器功能可以给每个链接加上广告代码,当当会为成交的订单向您支付佣金,不让这些流量白白浪费,过滤器规则这样写:

preg_replace:http:\/\/product\.dangdang\.com\/product.aspx\?product_id=([0-9]+)|http://union.dangdang.com/transfer.php?from=P-123456&ad_type=10&sys_id=1&backurl=http://product.dangdang.com/product.aspx?product_id=$1

把123456替换成您在当当联盟的ID,其他广告联盟都很类似,我抛玉引砖,大家举一反三

大家还可以用过滤器做出许多意向不到的功能,真正做到完全控制网页,不要成为CMS的奴隶。如果你有独特的用法请发信给我,我将刊登在这里,并保留您的链接。常用的过滤器实例我们都整理在这里,供大家参考,请点击浏览:filter-example.htm

最后总结一下,过滤器就像一条流水线,一个个环节依次处理内容。

具体进行什么处理由过滤规则决定,过滤规则目前分为五种:

一 替换(前缀:replace、preg_replace)

也是最常见的应用,前缀是“replace:”,后面写待替换的字符串,后面写替换后的字符串,中间用|分隔(分隔符是竖线)。替换字符串中如果有换行用 代替,如果有|用[|]代替。

如果前缀写“preg_replace:”则是正则替换,需要懂正则替换规则,一句话两句话讲不清楚,需要自己看正则表达式的手册,仅供高级用户使用,普通用户不用看这个。

二 引用其他过滤器 (前缀:include)

如果过滤器2是在过滤器1的基础上增加了几条,那不用在2的过滤规则中把1的规则重复一遍,只要写上include:1就可以了,然后在下面补充其他规则。注意:1引用2,2再引用1会造成死循环,对这种脑残情况程序不予处理,多吃核桃补补脑子。

三 调用PHP函数 (前缀:php)

过滤器中可以使用PHP函数(注意:不是PHP代码,仅仅是PHP函数而已),语法是在函数调用的前面加上“php:”,后面加上“;”,比如:

php:substr($input, 0, 10);

php:md5($input);

除了PHP内置函数之外,还可以调用AKCMS定义的函数,可用的函数列表如下:

gbktoutf8、tidylist、toutf8、fromutf8等

四 如果包含某个字符串就清空(前缀:clear)

clear:关键字

五 如果包含某个字符串就原样保留(否则就清空)(前缀:keep)

keep:关键字

不管哪一种规则都是一行一条,从上到下得执行,如果某一行是空行或不符合规则会跳过执行下一条,以#开头的行是注释,注释和规则不可以写到一行中。

创建好的规则可以在系统的许多地方使用:

一 采集相关的:

采集列表(源网页过滤、采集到的URL过滤、采集到的title过滤)、采集内容、采集到的内容

二 模板相关的:

如果对整个页面使用过滤器就在模板的最后一行写上

也可以只对变量使用过滤器,比如变量$title可以通过这样使用过滤器:

不但akecho可以这样,其他任何模板标签都可以通过增加一个filter="1"来使用过滤器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AKCMS是一款轻量级CMS,小巧高效,兼容性好,低CPU占用,低内存占用,对主机要求低;灵活自定义,适于SEO;超强负载能力,可支持百万PV。AKCMS是一款免费的轻量级CMS,它: ● 兼容性好,对主机要求低 各种操作系统(Linux、Windows)AKCMS全部工作正常 各种服务器(Apache、nginx)AKCMS全部工作正常 PHP各种版本(4.0*-5.*)AKCMS全部工作正常 各种数据库:MySQL(3.*、4.*、5.*)、SQLite(2.*、3.*)、Pdo数据接口,支持任意一种均可,AKCMS全部工作正常。 无需特殊服务器设置,市面上的虚拟主机(包括几乎全部免费主机)都可以正常运行AKCMS。 ● 轻量级CMS(220KB),小巧高效 AKCMS是轻量级CMS,下载的压缩包只有220KB,与此同时,其他主流CMS的大小均为AKCMS的几倍甚至十倍以上。更重要的是,AKCMS仍然在变得更小,从2.2版的286KB,逐渐压缩到3.5的220KB,体积不断变小,效率更高,速度更快 ● 灵活自定义,适于SEO AKCMS非常灵活,通过不同的模板与设置可以做出各种不同类型的网站:既可以做整站静态的网站,也可以做纯动态PHP的网站,还可以通过rewrite做出完全伪静态的动态网站;支持变量与子模板,方便维护;允许用户自定义模板函数,实现自己想要的功能;还允许二次开发者自定义后台模板;还允许在动态访问时,通过hook的方式执行插件;每一篇文章都可以自定义URL,可以自定义各种各样你能想到的URL ● 超强负载能力,可支持百万PV AKCMS提供了丰富的优化设置,多级灵活的缓存粒度,可以缓存页面的部分数据块、子模板、完整模板、动态页面,直至生成静态页面。可支持百万PV,以最低的成本助力创业团队的起飞。 注意:请将AKCMS解压缩到一个目录中而不要直接上传到根目录!! AKCMS轻量级CMS v5.3.7 更新日志: 1 修正了开启生成静态再关闭生成静态,文件名自动变为静态地址后不会同步变回动态的BUG 2 修正了某些情况下,涉及接口的数据出现乱码的BUG 3 放宽安全检测功能对包含ID的参数的校验规则,包含字母也视为正常 4 修正了PHP5.3+中开启AKCMS的调试模式后提示未来会删除不建议使用的警告信息的问题 5 修正了在Ubuntu+Firefox下,后台登录页的输入框超长变形的问题 6 修正了在Ubuntu+PHP下,无法一键升级、安装模板、安装应用的问题(其实是Ubuntu的问题)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值