今天寫一個問答系統上線之後發現有很多人發鏈接了,由於業務部門要我們過濾掉網站地址了,下面我給大家分享一個提取字符串url地址函數,代碼如下:
$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考'; preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2); print_r($array2);
運行結果為:
( [0] => Array ( [0] => http://www.manongjc.com ) )
這裡主要使用到preg_match_all函數,該函數具體使用方法如下:
preg_match_all — 進行全局正則表達式匹配
語法:
int preg_match_all ( string pattern, string subject, array matches [, int flags] )
r
正規表示式符合的內容並將結果以flags 指定的順序放到matches 中。搜尋到第一個符合項目之後,接下來的搜尋從上一個符合項目結尾開始。
數組,$matches[1] 為第一個括號中的子模式所匹配的字串組成的數組,以此類推。 (即$matches[0] [0]為全部模式匹配中的每一項,$matches[0] [1]為全部模式匹配中的第二項,$matches[1] [0]為匹配每一個括號中的第一項,$matches[1] [0]為符合每一個括號中的第二項)
<?php preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER); /* http://www.manongjc.com/article/1591.html */ print $out[0][0].", ".$out[0][1]."\n"; print $out[1][0].", ".$out[1][1]."\n"; ?>
輸出結果:
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test
更多php使用正規表示式取得字串中的URL相關文章請關注PHP中文網!