請php正則走開
更新時間:2008年03月15日 17:21:58 作者:
玩PHP玩了幾年了,在剛剛接觸PHP的時候感覺正則真的很洋氣,我想替換啥就替換啥。然而隨著工作的推移,漸漸對正則開發(fā)反感起來,正則的速度太慢了,而且特占內(nèi)存。在一個群里有個網(wǎng)友說,正則速度快,正則簡單,正則開發(fā)效率高。我并沒有與他爭辯,因為我剛剛做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){//取出所有匹配,不包含開始和結(jié)束字符串
$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;
}
總結(jié):你只要多想多總結(jié),不用正則,用PHP自帶的函數(shù)你能夠解決大部分問題。
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){//取出所有匹配,不包含開始和結(jié)束字符串
$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;
}
總結(jié):你只要多想多總結(jié),不用正則,用PHP自帶的函數(shù)你能夠解決大部分問題。
相關(guān)文章
PHP導出EXCEL快速開發(fā)指南--PHPEXCEL的使用詳解
本篇文章是對PHPEXCEL的使用進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP?redis?Sorted?Set實現(xiàn)字符串去重代碼示例
Redis中的Sorted?Set數(shù)據(jù)結(jié)構(gòu)可以用來存儲有序的唯一值,它們可以被用來構(gòu)建有序的集合或者有權(quán)重的數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于PHP?redis?Sorted?Set實現(xiàn)字符串去重的相關(guān)資料,需要的朋友可以參考下2023-05-05php分頁查詢mysql結(jié)果的base64處理方法示例
這篇文章主要介紹了php分頁查詢mysql結(jié)果的base64處理方法,涉及php+mysql數(shù)據(jù)庫查詢及base64編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-05-05PHP錯誤Cannot use object of type stdClass as array in錯誤的解決辦法
很多人在PHP輸出一個二維數(shù)組的時候出現(xiàn)“Fatal error: Cannot use object of type stdClass as array in……”。這篇文章主要介紹了該錯誤的解決辦法,需要的朋友可以參考下2014-06-06php實現(xiàn)查詢百度google收錄情況(示例代碼)
對了貌似查google pr的東西只是file一個地址而已,如此說了就沒有什么難度了。完整代碼如下2013-08-08