Использование SimpleHTMLDom для получения изображения с сайта - PullRequest
0 голосов
/ 29 февраля 2012

У меня простой html дом или другой скребущий вопрос.Это может даже работать, чтобы разобрать файл.Я не знаю.Я поражаюсь ...

Я использую Simple HTML Dom, чтобы попытаться получить изображение из этого канала:

http://www.sierraavalanchecenter.org/bottomline-rss.php

// Include the library
include('simple_html_dom.php');

$html = file_get_html('http://www.sierraavalanchecenter.org/bottomline-rss.php'); 

// Retrieve all images and print their SRCs
foreach($html->find('img') as $e)
    echo $e->src . '<br>';

// Find all images, print their text with the "<>" included
foreach($html->find('img') as $e)
    echo $e->outertext . '<br>';

// Find the DIV tag with an id of "myId"
foreach($html->find('div#dangericon') as $e)
    echo $e->innertext . '<br>';

Я пыталсянесколько разных способов без удачи здесь.Код выше взят прямо из http://davidwalsh.name/php-notifications.

Я не уверен, что я делаю неправильно.Время от времени я получаю некоторые мелочи, такие как тег HR, но не Danger Rose #dangericon->a->img или текст, найденный в .feedEntryContent->table->tbody->tr->td

. Я хотел бы поместить их оба в переменную $, чтобы я мог использоватьих в другом макете.

Спасибо за любые мысли.

править: Это дало Роуз Опасности.Может быть что-то не так с файлом bottom-line.php ...?

<?php
// Include the library
include('simple_html_dom.php');

$html = file_get_html('http://www.sierraavalanchecenter.org/advisory'); 

foreach($html->find('td.views-field-field-danger-rose-php-value img') as $e){
        echo '<img src="http://www.sierraavalanchecenter.org/'. $e->src . '" width="400px" height="180px"/><br>';
}
?>

1 Ответ

1 голос
/ 29 февраля 2012

Файл, который вы пытаетесь проанализировать, является файлом XML.

Я бы порекомендовал вам разобрать его, используя simplexml_load_file (http://nz.php.net/manual/en/function.simplexml-load-file.php)

<?php
include('simple_html_dom.php');

$xml = simplexml_load_file('http://www.sierraavalanchecenter.org/bottomline-rss.php');

$description = (string)$xml->channel->item->description;

$html = new simple_html_dom();
$html->load($description);

foreach($html->find('img') as $image) {
echo $image->src . '<br/>';
} 
?>
...