php使用正則表達(dá)式獲取字符串中的URL
今天寫一個問答系統(tǒng)上線之后發(fā)現(xiàn)有很多人發(fā)鏈接了,由于業(yè)務(wù)部門要我們過濾掉網(wǎng)站地址了,下面我給大家分享一個提取字符串url地址函數(shù),代碼如下:
$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);
運行結(jié)果為:
( [0] => Array ( [0] => http://www.manongjc.com ) )
這里主要使用到preg_match_all函數(shù),該函數(shù)具體使用方法如下:
preg_match_all — 進(jìn)行全局正則表達(dá)式匹配
語法:
int preg_match_all ( string pattern, string subject, array matches [, int flags] )
在 subject 中搜索所有與 pattern 給出的正則表達(dá)式匹配的內(nèi)容并將結(jié)果以 flags 指定的順序放到 matches 中。
搜索到第一個匹配項之后,接下來的搜索從上一個匹配項末尾開始。
特別注意PREG_PATTERN_ORDER 和PREG_SET_ORDER
flags 可以是下列標(biāo)記的組合(注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起來用沒有意義):
如果使用PREG_PATTERN_ORDER
對結(jié)果排序使 $matches[0] 為全部模式匹配的數(shù)組,$matches[1] 為第一個括號中的子模式所匹配的字符串組成的數(shù)組,以此類推。(即$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"; ?>
輸出結(jié)果:
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test
相關(guān)文章
從零開始學(xué)YII2框架(二)通過 Composer 安裝擴(kuò)展插件
在使用Yii框架開發(fā)的過程中,有一些優(yōu)秀的插件可以讓我們事半功倍。下面來介紹通過Composer安裝Yii2插件的方法。2014-08-08php中使用gd庫實現(xiàn)遠(yuǎn)程圖片下載實例
這篇文章主要介紹了php中使用gd庫實現(xiàn)遠(yuǎn)程圖片下載實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-05-05ThinkPHP的cookie和session沖突造成Cookie不能使用的解決方法
這篇文章主要介紹了ThinkPHP的cookie和session沖突造成Cookie不能使用的解決方法,需要的朋友可以參考下2014-07-07PHP頁面跳轉(zhuǎn)實現(xiàn)延時跳轉(zhuǎn)的方法
下面小編就為大家?guī)硪黄狿HP頁面跳轉(zhuǎn)實現(xiàn)延時跳轉(zhuǎn)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12