Повторяю только div с php - PullRequest
       16

Повторяю только div с php

1 голос
/ 03 февраля 2011

Я пытаюсь создать сценарий, который повторяет только div, который включает изображение в Google.

$url = "http://www.google.com/";
$page = file($url);

foreach($page as $theArray) {
echo $theArray;
}

Проблема в том, что это повторяет всю страницу.Я хочу отобразить только часть между <div id="lga"> и следующим ближайшим </div> Примечание: я пытался использовать if, но он не работал, поэтому я удалил их

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Используйте встроенные методы DOM:

<?php

$page = file_get_contents("http://www.google.com");

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($page);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$lga = $domx->query("//*[@id='lga']")->item(0);

$domd2 = new DOMDocument();
$domd2->appendChild($domd2->importNode($lga, true));

echo $domd2->saveHTML();
2 голосов
/ 03 февраля 2011

Для этого вам нужно проанализировать DOM, а затем получить искомый идентификатор.Проверьте библиотеку синтаксического анализа, как это http://simplehtmldom.sourceforge.net/manual.htm

После подачи вашего HTML-документа в анализатор вы можете вызвать что-то вроде:

$html = str_get_html($page); 
$element = $html->find('div[id=lga]'); 
echo $element->plaintext;

Это, я думаю, будет вашим самым быстрым и простымрешение.

...