2013-03-23 31 views
-2

我有一個包含html標籤,文本等的數組。我只想從列表中獲取.org域。如何從PHP中的數組獲取.org域?

我的代碼無法正常工作:

<?php 

$list = htmlentities(file_get_contents('list.html')); 

preg_match("/^[a-zA-Z0-9-.]+(.org)$/", $list, $matches); 

var_dump ($matches); 
?> 
+1

如果連字符顯示在字符類(方括號之間),則該連字符必須是在該類中的最後一個字符。因此,請嘗試交換句點和連字符的位置。除此之外,也許舉例說明你在做什麼,因爲它不是很清楚。 – Bobulous 2013-03-23 13:35:00

+1

如果您希望preg_match將'^'和'$'作爲一行的開始和結尾,而不是整個字符串,則應該設置'm'修飾符:'preg_match(「/^[a-zA-Z0-9 - 。] +(.org)$/m「'。是否有幫助? – lazyhammer 2013-03-23 13:35:19

+0

內容:http://pastebin.com/MRtS3s7y我想獲取數組中的.org域。 lazyhammer:結果是'array(0){}' – user1452062 2013-03-23 13:39:48

回答

1
$list = "google.com 
    http://d.org 
    google.org 
    <ul> 
     <li>www.yahoo.co.uk</li> 
     <li>http://www.bsdflj.org.uk</li> 
     <li>nsdfljsdf.org</li> 
    </ul>"; 

preg_match_all("~([a-zA-Z0-9-.]+.org)[^\.]~s", $list, $matches); 
var_dump ($matches[1]); 

$名單是我用了測試。

輸出的var_dump的():

array(3) { 
    [0]=> 
    string(5) "d.org" 
    [1]=> 
    string(10) "google.org" 
    [2]=> 
    string(13) "nsdfljsdf.org" 
}