2013-07-10 2 views
1

Я пытаюсь сохранить объект dom в папку с папкой c: ... Но как я могу это достичь? Я прочитал много документов, но не смог этого сделать. Пожалуйста помоги!Сохранение изображения объекта DOM

$html = new simple_html_dom(); 
$html->load_file($newurl); 

foreach($html->find('img') as $img){ 

    $path = "../folder/"; 

    $file = file_get_html ($img->src); 

    $file->save($path); //1st method, fails 
    $img->save($path); //2nd alternative, fails too. 

} 

Я знаю, что последняя строка неверна. Но я не могу понять это.

+0

Или, по крайней мере, как я могу преобразовать $ img в файл? –

+0

Привет мышь Тан, добро пожаловать в SO. – Ben

ответ

0

Функция, которая вам нужна в вашем примере: file_get_contents(). Я не думаю, что file_get_html() является функцией.

После этого вы должны позвонить file_put_contents() или его приятелю write().

Или, если вы исправите адрес src, почему бы не использовать copy()?

copy ($img->src, $path) 

Или, по крайней мере, как я могу конвертировать $ IMG в файл?

$img является узлом DOM, а не файлом. Я уверен, что если вы сохраните это, он просто сохранит тег <img> с его атрибутами, а не с изображением.


EDIT

Чтобы ответить на ваш комментарий:

DOM-это как воображаемому дерева. Каждая ветвь дерева является узлом. Эти узлы не являются файлами, они просто дочерние элементы, например <div> или что-то в этом роде. Итак, когда вы вызываете save() в документе DOM, он просто сохранит строку HTML, которая содержит узел и его дочерние элементы.

Файл совершенно другой вещи. Его нужно открыть, прочитать и т. Д. Для выполнения этих операций пользователь должен иметь разрешение на это. 777 на системах * nix означает, что пользователь может что-либо сделать с этим файлом.

Итак, вы собираетесь получить src (адрес) файла изображения из узла DOM и работать с этим файлом . Вам больше не нужен узел, поскольку все, что вам нужно, это адрес. Затем используйте приведенные выше функции для чтения, записи, копирования, независимо от того, что вы хотите сделать, в файл (а не узел).

В принципе, узел представляет собой всего лишь строку HTML. Файл - это фактические данные. Все предметы DOM просто перемещаются по дереву и смотрят на ветки. Это называется «разбор».

+0

Привет, Стив, я думаю, что копия будет более подходящим выбором, потому что я не имею дело с файлом. Объект DOM image = файлы? Я установил разрешение на доступ к папке 777. Но ему не удалось открыть поток: разрешение было отклонено –

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