2013-03-08 68 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