2014-11-26 3 views
0

Я хочу проанализировать изображение из файла HTML с помощью простого dom. Я использовал regex до сих пор, но все сказали мне, что это действительно плохая идея, поэтому я хотел попробовать dom.Разбор изображения с использованием простого DOM

<?php 
include('simple_html_dom.php'); 
$html = file_get_html('192.0.0.1/test.html'); 
var_dump($html); 
foreach ($html->find('img') as $image) { 
    echo $images->src; 
} 
?> 

test.html

<html> 
<head> 
</head> 
<body> 
    <p>test</p> 
    <img src="test.jpg"/> 
    <p>test1</p> 
</body> 
</html> 

Я получаю пустую страницу, и я проверил на errorlogs, но у меня нет никаких. Я следил за учебниками по DOM, я сделал ошибку?

Также можно разобрать img из переменной, которая имеет код HTML? Что я имею в виду:

$string='<p>sdadasd</p> <img src="test.jph/> <p>asdasda</p>'; 
$html=file_get_hmtl($string); 
+0

почему бы не использовать XPath – raser

+0

я понятия не имею, что это такое: D – IseNgaRt

+0

Пожалуйста, проверьте, что вар iable $ image содержит использование var_dump ($ image); – Phil

ответ

0

Вы могли бы использовать что-то вроде этого (я не знаю, где вы получили file_get_html, поэтому я не знаю, какие методы, которые возражали возвращается)

$document = new DOMDocument(); 
$document->loadHTMLFile("http://127.0.0.1/index.html"); // I don't remember if this accepts streams 

$images = $document->getElementsByTagName("img"); 

foreach($images as $image) { 
    //Use the image 
} 

Или, если вам нужно сложные запросы (например, IMG метки с определенным атрибутом) вы могли бы сделать

$xpath = new DOMXPath($document); 
$images = $xpath->query("//img"); 
+0

я видел это отсюда: http://davidwalsh.name/php-notifications – IseNgaRt

+0

im получение этого: Предупреждение: DOMDocument :: loadHTMLFile(): предупреждение ввода-вывода: не удалось загрузить внешний объект " 127.0.0.1/yolo.html " в C : \ wamp \ www \ test.php в строке 3 – IseNgaRt

+0

делает '127.0.0.1/yolo.html' существует? DOMDocument поддерживает потоки ... – raser

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