請(qǐng)php正則走開
更新時(shí)間:2008年03月15日 17:21:58 作者:
玩PHP玩了幾年了,在剛剛接觸PHP的時(shí)候感覺正則真的很洋氣,我想替換啥就替換啥。然而隨著工作的推移,漸漸對(duì)正則開發(fā)反感起來,正則的速度太慢了,而且特占內(nèi)存。在一個(gè)群里有個(gè)網(wǎng)友說,正則速度快,正則簡單,正則開發(fā)效率高。我并沒有與他爭辯,因?yàn)槲覄倓傋鯬HP的時(shí)候也是這樣的想法。但是正則真的那么好嗎?
好了,那么我出幾個(gè)題,不用正則,看我怎么解決的。
1.清除HTML中所有的標(biāo)簽,只保留超級(jí)鏈接。
我用strip_tags。
strip_tags($data,$tags)
$data為字符串,$tags為保留的標(biāo)簽。
strip_tags($data,'<a>')即可。完了?對(duì),就那么簡單。
如果我還想保留<img>,則strip_tags($data,'<a><img>')
2.截取$str中從$str1到$str2中間的字符串的第一個(gè)匹配。
function str_cut($str ,$start, $end) {//取出第一個(gè)匹配,效率最高
$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中所有的標(biāo)簽,只保留超級(jí)鏈接。
我用strip_tags。
strip_tags($data,$tags)
$data為字符串,$tags為保留的標(biāo)簽。
strip_tags($data,'<a>')即可。完了?對(duì),就那么簡單。
如果我還想保留<img>,則strip_tags($data,'<a><img>')
2.截取$str中從$str1到$str2中間的字符串的第一個(gè)匹配。
function str_cut($str ,$start, $end) {//取出第一個(gè)匹配,效率最高
$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)文章
學(xué)習(xí)thinkphp5.0驗(yàn)證類使用方法
這篇文章主要介紹了thinkphp5.0驗(yàn)證類的簡單有效的使用方法,一起學(xué)習(xí)下。2017-11-11PHP導(dǎo)出EXCEL快速開發(fā)指南--PHPEXCEL的使用詳解
本篇文章是對(duì)PHPEXCEL的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP?redis?Sorted?Set實(shí)現(xiàn)字符串去重代碼示例
Redis中的Sorted?Set數(shù)據(jù)結(jié)構(gòu)可以用來存儲(chǔ)有序的唯一值,它們可以被用來構(gòu)建有序的集合或者有權(quán)重的數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于PHP?redis?Sorted?Set實(shí)現(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錯(cuò)誤Cannot use object of type stdClass as array in錯(cuò)誤的解決辦法
很多人在PHP輸出一個(gè)二維數(shù)組的時(shí)候出現(xiàn)“Fatal error: Cannot use object of type stdClass as array in……”。這篇文章主要介紹了該錯(cuò)誤的解決辦法,需要的朋友可以參考下2014-06-06php實(shí)現(xiàn)查詢百度google收錄情況(示例代碼)
對(duì)了貌似查google pr的東西只是file一個(gè)地址而已,如此說了就沒有什么難度了。完整代碼如下2013-08-08