正则批量替换函数preg_replace_callback 在php5.2 php5.3中的类中使用问题相关说明
[ 2020-06-09 21:54:10 | 作者: admin ]
p.s. 真的挺奇怪,这么常用的函数,关于类中使用网上居然很难找到有用相关资料,难道大伙都避免使用preg_replace_callback吗。有用的说明请看参考1.
下面举例说明,其中 next_year 为回调函数
php5.2和php5.3的类中都可以使用的标准方法:
阅读全文…
下面举例说明,其中 next_year 为回调函数
function next_year($matches) {
// 通常:$matches[0] 是完整的匹配项,$matches[1] 是第一个括号中的子模式的匹配项, 以此类推
return $matches[1].($matches[2]+1);
}
// 通常:$matches[0] 是完整的匹配项,$matches[1] 是第一个括号中的子模式的匹配项, 以此类推
return $matches[1].($matches[2]+1);
}
php5.2和php5.3的类中都可以使用的标准方法:
preg_replace_callback(”|(d{2}/d{2}/)(d{4})|”,array( &$this, ‘next_year’), $str);
...阅读全文…
Apache服务器.htAccess rewrite伪静态时匹配url里的中文或http网址
[ 2020-06-09 13:44:04 | 作者: admin ]
p.s. 涉及伪静态参数中有网址或者中文的,需要进行2次urlencode,因为apache伪静态前会自动urldecode一次
配置Apache的伪静态,涉及到中文正则不能匹配,
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
也试了,也不能匹配。
尝试匹配所有字母数字加上% ([a-zA-Z0-9_%]+)
也没有成功,查到Apache执行url会自动进行一次urldecode,传的值会还原成中文的,也不能匹配。
后来想到,把值进行两次 urlencode ,取的时候再进行两次 urldecode 用([a-zA-Z0-9_%]+)
就可以匹配了。
配置Apache的伪静态,涉及到中文正则不能匹配,
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
也试了,也不能匹配。
尝试匹配所有字母数字加上% ([a-zA-Z0-9_%]+)
也没有成功,查到Apache执行url会自动进行一次urldecode,传的值会还原成中文的,也不能匹配。
后来想到,把值进行两次 urlencode ,取的时候再进行两次 urldecode 用([a-zA-Z0-9_%]+)
就可以匹配了。
1