Как получить конкретный контент с помощью PHP и DOM Document? - PullRequest
0 голосов
/ 15 сентября 2009

У меня есть URL, который я хочу получить. Я хочу только короткий кусок контента от него. Рассматриваемое содержимое находится в элементе div с идентификатором образца.

<div id="sample">
   Content
</div>

Я могу взять файл так:

$url= file_get_contents('http://www.example.com/');

Но как мне выбрать только этот пример div.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 15 сентября 2009

Я бы порекомендовал использовать PHP Simple HTML DOM Parser .

Тогда вы можете сделать:

$html = file_get_html('http://www.example.com/');
$html->find('div[#sample]', 0);
1 голос
/ 15 сентября 2009

Я бы порекомендовал что-то вроде Simple HTML DOM , хотя, если вы очень уверены в формате, вы можете использовать regex для извлечения нужных вам данных.

0 голосов
/ 14 января 2016

Некоторое время назад я выпустил библиотеку с открытым исходным кодом с именем PHPPowertools/DOM-Query, которая позволяет (1) загрузить файл HTML и затем (2) выбрать или изменить детали вашего HTML так же, как вы сделали бы это с jQuery.

Используя эту библиотеку, вы можете выбрать пример div для вашего примера:

use \PowerTools\DOM_Query;

// Get file content
$htmlcode = file_get_contents('http://www.example.com/');

// Create a new DOM_Query object
$H = new DOM_Query($htmlcode);

// Find the elements that match selector "div#sample"
$s = $H->select('div#sample');
...