请php正则走开
2015-01-24信息快讯网
玩PHP玩了几年了,在刚刚接触PHP的时候感觉正则真的很洋气,我想替换啥就替换啥。然而随着工作的推移,渐渐对正则开发反感起来,正则的速度太慢了,而且特占内存。在一个群里有个网友说,正则速度快,正则简单,正则开发效率高。我并没有与他争辩,因为我刚刚做PHP的时候也是这样的想法。但是正则真的那么好吗?
好了,那么我出几个题,不用正则,看我怎么解决的。1.清除HTML中所有的标签,只保留超级链接。
我用strip_tags。
strip_tags($data,$tags)
$data为字符串,$tags为保留的标签。
strip_tags($data,'<a>')即可。完了?对,就那么简单。
如果我还想保留<img>,则strip_tags($data,'<a><img>')
2.截取$str中从$str1到$str2中间的字符串的第一个匹配。
function str_cut($str ,$start, $end) {//取出第一个匹配,效率最高
$content = strstr( $str, $start );
$content = substr( $content, strlen( $start ), strpos( $content, $end ) - strlen( $start ) );
return $content;
}
3.截取$str中从$str1到$str2中间的字符串的所有匹配。
function my_Ca($content,$start,$end){//取出所有匹配,不包含开始和结束字符串
$m = explode($start,$content);
$a = array();
$sum = count($m);
for( $i = 1;$i < $sum;$i++ )
{
$my = explode($end,$m[$i]);
$a[] = $my[0];
unset($my);
}
return $a;
}
总结:你只要多想多总结,不用正则,用PHP自带的函数你能够解决大部分问题。
PHP 截取字符串函数整理(支持gb2312和utf-8)
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
一步一步学习PHP(6) 面向对象
一步一步学习PHP(5) 类和对象
php 生成静态页面的办法与实现代码详细版
php 文章采集正则代码
PHP simple_html_dom.php+正则 采集文章代码
php 正则表达式小结
php 正则匹配函数体
php 正则 过滤html 的超链接
PHP执行速率优化技巧小结
可以在线执行PHP代码包装修正版
PHP Token(令牌)设计
Apache+php+mysql在windows下的安装与配置(图文)第1/2页
php项目打包方法
PHP4与PHP5的时间格式问题
dedecms采集中可以过滤多行代码的正则表达式
php公用函数列表[正则]
php中看实例学正则表达式
在PHP中使用与Perl兼容的正则表达式