当前位置: 首页 > 图文教程 > 网络编程 > PHP > 请php正则走开

PHP
在 php 中使用 sockets:从新闻组中获取文章
正则表达式中的特殊字符
无限分类与树型论坛的实现方法
谈谈生成静态页面的一些经验
使用php的编码功能-mime.inc
缓存PHP页面的代码,可以减轻CPU和MYSQL负担
php控制用户的浏览器
CSS反转字符加密邮箱地址
用PHP调用Lucene包来实现全文检索
phpbb mod for google 完全解决方案
如何避免表单的重复提交
用PHP处理多个同名复选框
文件下载统计php编程
利用Editplus2的用户工具功能来即时调试PHP
实例学习PHP之FastTemplate模板篇
模板--为什么和如何在PHP中使用它们
PHP中实现大图自动缩成小图(及GD库的安装)
采用 PEAR 来缓冲 PHP 程序(一)
采用 PEAR 来缓冲 PHP 程序(二)
变量的“追随”:cookie与session

PHP 中的 请php正则走开


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 204 ::
收藏到网摘: n/a

玩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自带的函数你能够解决大部分问题。