PHP正则相关的几个preg函数
preg_match: 字符串比对解析。
preg_match_all: 字符串整体比对解析。
preg_replace: 字符串比对解析并取代。
preg_split: 将字符串依指定的规则切开。
preg_match字符串比对解析
语法: int preg_match(string pattern, string subject, array [matches]);
返回值: 整数/数组
内容说明: 本函数以 pattern 的规则来解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中,matches[0] 内容就是原字符串 subject、matches[1] 为第一个合乎规则的字符串、matches[2] 就是第二个合乎规则的字符串,余类推。若省略参数 matches,则只是单纯地比对,找到则返回值为 true。
preg_match_all字符串整体比对解析
语法: int preg_match_all(string pattern, string subject, array matches, int [order]);
返回值: 整数
内容说明: 本函数以 pattern 的规则来整体解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中,并依顺序值 order 排序。参数 order 的值有 PREG_PATTERN_ORDER 及 PREG_SET_ORDER 二种。若没有 order 值,则系统自动以 PREG_PATTERN_ORDER 代入 order 值中。返回值为合乎比对结果的数目,若没有或错误则返回 [...]
如何解决php程序使用javascript调用的换行问题
网站的数据调用中,js调用使用最为频繁,其中document.write是最基本的函数。
不过javascript的document.write的参数串中是不允许出现换行符的,单凭这一点,就给我们造成很多麻烦
我们有两种解决方案
如果有可以删除可以这样:$text=preg_replace(”/[\r\n]+/”,””,$text);
但直接删除有可能发生js错误,所以应该进行转义处理
$text=preg_replace(”/[\r\n]+/”,”\\n”,$text);
另外用php书写js串时要注意转义php串中的引号
简析PHPCMS的模板解析工作流
现在很多PHP系统都有自己模板系统,PHPCMS和DISCUZ都是用的自己模板库,他们都称得上超级高效。
PHPCMS的模板解析函数库位于PHPCMS根目录的INCLUDE中,这个从3.0到现在的2008一直都没有变过。它的名字叫template.func.php,从文件名就可以知道,它是一个模板方面的函数库文件。
它的工作流程是这样的,先由执行程序调用根目录下INCLUDE中主函数库global.func.php中的template函数,并有它指定调用模板的位置和模板名称,同步调用template.func.php下的template_compile函数对模板规则进行处理,而其中模板的编译解释就由template_parse的正则函数来搞定了。
我们找到template_parse命令可以看到,我们模板中常用的{if}{loop}{tag}标签,这里都用提及。2008版中最为红火的{get}万能标签的出处也不外乎
$str = preg_replace(”/\{get\s+([^}]+)\}/e”, “get_parse(’\\1′)”, $str);
$str = preg_replace(”/\{\/get\}/”,”<?php } unset(\$DATA); ?>”,$str);
这么看来,phpcms的模板系统还是蛮简单,呵呵
希望对大家有所帮助。

