请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自带的函数你能够解决大部分问题。
©2014-2024 dbsqp.com