首頁  >  文章  >  後端開發  >  php使用正規表示式取得字串中的URL詳解

php使用正規表示式取得字串中的URL詳解

墨辰丷
墨辰丷原創
2018-05-29 09:59:576307瀏覽

客戶端傳過來一段字串,需要從字串中比對出所有的url,php該如何實作呢?這篇文章向大家介紹php如何取得字串中的URL(網址連結),主要使用到php正規表示式函數preg_match_all,具體實作方法請看下文

$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] )


在subject 中搜尋所有與pattern 給出的正規表示式符合的內容並將結果以flags 指定的順序放到matches 中。
搜尋到第一個符合項目之後,接下來的搜尋從上一個符合項目結尾開始。

特別注意PREG_PATTERN_ORDER 和PREG_SET_ORDER

flags 可以是下列標記的組合(注意把PREG_PATTERN_ORDER 和PREG_SET_ORDER 合起來用沒有意義):##EG

#如果使用PREG_PATTER#NORDER#PATTER

對結果排序使$matches[0] 為全部模式匹配的數組,$matches[1] 為第一個括號中的子模式所匹配的字串組成的數組,以此類推。 (即$matches[0] [0]為全部模式匹配中的每一項,$matches[0] [1]為全部模式匹配中的第二項,$matches[1] [0]為匹配每一個括號中的第一項,$matches[1] [0]為符合每個括號中的第二項)

<?php 
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><p align=left>this is a test</p>",$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>, <p align=left>this is a test</p> 
example: , this is a test




#以上就是本文的全部內容,希望對大家的學習有所幫助。


相關推薦:

PHP

正規表示式符合取代與分割功能實例

PHP

正規表示式匹配取代與分割功能實例分析

#正規表示式語句註解步驟詳解

PHP最常用的

正規表示式

##

以上是php使用正規表示式取得字串中的URL詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn