2011-05-21 4 views
5

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

<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'; 
+0

http://stackoverflow.com/questions/7124823/file-get-html-displays-fatal -error-call-to-undefined-function – merrais

ответ

8
$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

Попробуйте Simple 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

'div [style = example]' соответствует трем узлам. –

0
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"> 
    ?> 
+0

[Не совсем] (http://www.ideone.com/bpWIA), но это шаг в правильном направлении. –

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