2013-04-23 3 views
0

Я пытаюсь извлечь содержимое html изнутри веб-сайта. Я хочу только содержимое внутри тегов.получить содержимое внутри html не работает

//$validLink is a link with .htm extension, source code is rather large 
    //contains 24,000 lines of html code 

    $thehtml = file_get_contents($validlink); 
    $thehtml = preg_match("/<body.*?>(.*?)<\/body>/is", $thehtml); 

Что еще я могу сделать? $ thehtml пуст .... Я пытаюсь вставить это в сообщение Wordpress ... но $ thehtml пуст ... по какой-то нечетной причине. Есть ли возможная проблема с тайм-аутом или что-то в этом роде ???

Не может быть проблемы с таймаутом ..... из-за того, что я заметил, что если я выведу только файл_get_contents ($ validlink); по какой-то причине BODY не найден .....

Другим возможным решением было бы просто получить содержимое между первым DIV и последним ДИВ найти в документе ....

+0

Используйте DOM-парсер, а не регулярное выражение, для извлечения информации из HTML. – Barmar

ответ

0

получить позицию строки используя 'StrPos() обоих тегов начала и окончания затем использовать вспомогательный метод струна т.е. SubStr() с этим позиции

+0

Спасибо, что я смог сделать слово и использовать substr() и strpos() и т. Д. – John

0
$thehtml = file_get_contents($validlink); 
$thehtml = preg_match("/<body.*?>(.*?)<\/body>/is", $thehtml,$matches); 
$thehtml = $matches[0]; 
0

Вот правильный код:

$thehtml = file_get_contents($validlink); 
preg_match('/<body.*?>(.*?)<\/body>/is', $thehtml, $matches); 
$thehtml = $matches[1]; 

Bu Я предлагаю вам вместо этого использовать DOM parser.

+0

как бы вы это сделали с DOM Parser? $ thehtml = file_get_contents ($ validlink); $ dumphtml = $ thehtml-> find ('body') -> внутренний текст; ??? – John

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