2013-03-08 48 views
0

我是新來的PHP。作爲課程作業的一部分,我需要從網站提取數據並使用該數據呈現表格。PHP中的正則表達式從網站提取數據

P.S. :使用正則表達式不是一個好的選擇,但我們不允許使用像DOM,jQuery等任何庫。

字符集是UTF-8。

$searchURL = "http://www.allmusic.com/search/artists/the+beatles"; 
$html = file_get_contents($searchURL); 

$patternform = '/<form(.*)<\/form>/sm'; 
preg_match_all($patternform ,$html,$matches); 

這裏的正則表達式工作正常,但是當我對錶標記應用相同的正則表達式時,它返回空數組。是否有關於$ html中的空格的問題?

這裏有什麼問題?

+0

爲什麼你不準......功課? – 2013-03-08 18:59:09

+2

您應該閱讀[如何使用PHP解析和處理HTML/XML](http://stackoverflow.com/q/3577641/1592648)任何告訴您通過DOM使用正則表達式的類是您應該從中註銷的類並獲得退款。 – 2013-03-08 18:59:28

+0

你需要什麼信息?只定位您需要的特定字段,構建一個對象數組,然後將它們顯示在表中。你準確地粘在哪裏? – Tchoupi 2013-03-08 19:01:50

回答

1

下面的代碼產生了良好的效果:

$searchURL = "http://www.allmusic.com/search/artists/the+beatles"; 
$html = file_get_contents($searchURL); 

$patternform = '/(<table.*<\/table>)/sm'; 
preg_match_all($patternform ,$html,$matches); 

echo $matches[0][0]; 

結果:

enter image description here

+0

嘿,非常感謝.. – Margi 2013-03-08 19:27:35

+0

@Margi沒問題。您可以通過將此答案標記爲已接受而感謝我:) – Tchoupi 2013-03-08 19:35:05