Показывать только определенный идентификатор с веб-очисткой PHP? - PullRequest
0 голосов
/ 02 января 2012

Я работаю над личным проектом, где он получает информацию о закрытии школы / бизнеса моей местной метеостанции и отображает результаты на моем личном сайте.Поскольку сайт не использует RSS-канал (к сожалению), я подумывал об использовании PHP-скрипта для получения содержимого страницы, но я хочу показать только определенный элемент ID.Это возможно?

Мой PHP-код:

<?php
$url = 'http://website.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

Я думал об использовании preg_match, но я не уверен в синтаксисе или даже в правильной команде.Элемент идентификатора, который я хочу показать: #LeftColumnContent_closings_dg.

Ответы [ 2 ]

2 голосов
/ 03 января 2012

Вот пример использования DOMDocument.Он извлекает текст из первого элемента <h1> с id = "test" ...

$html = '
<html>
<body>
<h1 id="test">test element text</h1>
<h1>test two</h1>
</body>
</html>
';

$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$res = $xpath->query('//h1[@id="test"]');
if ($res->item(0) !== NULL) {
  $test = $res->item(0)->nodeValue;
}
1 голос
/ 02 января 2012

Библиотека, которую я с большим успехом использовал для такого рода вещей, - PHPQuery: http://code.google.com/p/phpquery/.

Вы в основном переводите свой веб-сайт в строку (как у вас выше), затем делаете:

phpQuery::newDocument($output);

$titleElement = pq('title');
$title = $titleElement->html();

Например, - который получит содержимое элемента title.Преимущество заключается в том, что все методы названы в честь jQuery, что делает его довольно простым для изучения, если вы уже знаете jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...