2012-04-08 4 views
0

Я пытался получить данные с веб-страницы с помощью PHP и file_get_contents вместе с регулярными выражениями, но я не могу получить правильные данные со страницы.Как получить конкретные данные с веб-страницы с помощью PHP

Вот мой код,

<?php 
    $homepage = file_get_contents('http://www.website.com'); 
    preg_match_all('/<p><b>(.*)<\ /b><br>(.*)<br>(.*)<\ /p>/ms', $homepage, $matches); 
    $def = $matches[0]; 
    echo $def; 
    ?> 

Мои регулярные выражения не подбирая ничего, даже если есть HTML-код, который соответствует выражения. В качестве теста я также попытался заменить первую функцию preg_match следующим.

preg_match_all('/<div>(.*)<\ /div>/ms', $homepage, $matches); 

Это только подхватили 2 из двух тегов div на странице. Что не так с моим кодом и каков правильный способ его написания?

Благодаря

ответ

1

Вместо использования регулярных выражений вы могли бы просто использовать РНР Document Object Model.

$homepage = file_get_contents('http://www.website.com'); 
$DOM = new DOMDocument; 
$DOM->loadHTML($homepage); 
$items = $DOM->getElementsByTagName('div'); 
$def = $items->item(0)->nodeValue; 

(справочная информация this вопрос).

Смежные вопросы