PHP способ разбора HTML-строки - PullRequest
5 голосов
/ 21 мая 2011

У меня есть строка php, которая содержит приведенный ниже HTML-код, который я извлекаю из RSS-канала.Я использую простой пирог и не могу найти какой-либо другой способ разделения этих двух наборов данных, которые он получает из <description>.Если кто-нибудь знает, как можно выбрать простого ребенка для простого пирога, то это было бы здорово.

<div style="example"><div style="example"><img title="example" alt="example" src="example.jpg"/></div><div style="example">EXAMPLE TEXT</div></div>

to:

$image = '<img title="example" alt="example" src="example.jpg">';
$description = 'EXAMPLE TEXT';

Ответы [ 3 ]

8 голосов
/ 21 мая 2011
$received_str = 'Your received html';

$html = str_get_html($received_str);

//Image tag
$img_tag = $html->find("img", 0)->outertext;

//Example Text
$example_text = $html->find('div[style=example]', 0)->last_child()->innertext;

Смотрите здесь: http://simplehtmldom.sourceforge.net/manual.htm

2 голосов
/ 21 мая 2011

Попробуйте Простой HTML Dom Parser

// Create DOM from HTML string
$html = str_get_html('Your HTML here');

// Find all images 
foreach($html->find('img') as $element) 
       echo $element->src . '<br>';

// Description
$description = $html->find('div[style=example]');  
0 голосов
/ 21 мая 2011
try using strip_tags: 

 <?php
    $html ='<div style="example"><div style="example"><img title="example" alt="example" src="example.jpg"/></div><div style="example">EXAMPLE TEXT</div></div>';
    $html = strip_tags($html,'<img>'); //$HTML == <img title="example" alt="example" src="example.jpg">
    ?>
...