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

PHP
MYSQL版本大于4.1问题 - PHPchina
怎么让用户点击一个连接后,把一个图片另存了 - PHPchina
武汉10月15日Phper聚会召集!!! - PHPchina
php如果不等待exec执行的程序创建的子进程? - PHPchina
哪位知道DISCUZ处理防SQL注入的代码是哪部分 - PHPchina
求教!我实在不知道哪里问题,在线等ing - PHPchina
怎样结束用户某一进程 - PHPchina
比对用户名密码能不能这样写? - PHPchina
求助:如何在PHP+mysql中实现数据备份? - PHPchina
大家看看这个配置对吗 - PHPchina
如何禁止require当前文件 - PHPchina
无法将回调函数放在类中? - PHPchina
村里 PHP代码高亮是怎么实现的? - PHPchina
apache安装后.服务里没有apache2这个服务! - PHPchina
请教一个小问题 - PHPchina
config.php里面是不是应该把多数参数设置为常量而不是变量? - PHPchina
请教高手一个问题 - PHPchina
如何让百度收录我的网站 ?? - PHPchina
谁能给个注入的简单语句? - PHPchina
求PHP站内搜索思路 - PHPchina

PHP 中的 请php正则走开


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 51 ::
收藏到网摘: 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自带的函数你能够解决大部分问题。