php正则

php正则式尾部的 i,m,s,x,e 含义

  • i: 表示in-casesensitive,即大小写不敏感
  • s: PCRE_DOTALL,表示点号可以匹配换行符。
  • U: 表示PCRE_UNGREEDY,表示非贪婪,相当于perl/python语言的.*?,在匹配过程中,对于.*正则,一有匹配立即执行,而不是等.*消费了所有字符再一一回退

在实际使用中,常用的有i、e

php中全角空格替换

在php中用str_replace函数替换utf-8编码文本中的全角空格,下面几个表示全角空格的方法都不好用:
两个半角空格表示全角空格;
直接在代码里面输全角空格;
用\s空格表示全角空格;

解决方案:
全角空格的utf-8编码是0xe38080,gbk编码是0xa1a1。
在 utf-8编码编辑器中全角空格要写为$full_width_space = “\xe3\x80\x80”;
在非utf-8编码编辑器里全角空格要写为$full_width_space = iconv(‘gbk’, ‘utf-8’, “\xa1\xa1”);

含有正则的网页运行总失败的原因

正则压力太大,apache挂掉了,但是因为守护进程,所以挂掉了会马上自行恢复。
正则还是要写合理简单些,不然压力大了直接死给你看。

通常php会根据语境自动转换大多数基本数据类型
字符串转布尔
$b=preg_match(“/false|no|off/i”,”false”)?false:true;

发表评论