я использовал PHP Простой HTML DOM Parser сначала преобразовать строку HTML в объект DOM str_get_html()
метод simple_html_dom.php
$summary = str_get_html($html_string);
Затем я извлек <img>
объект из $summary
от
foreach ($summary->find('img') as $img) {
$image = $img;
break;
}
Теперь мне нужно преобразовать объект $ image DOM обратно в строку. я использовал
Объектно-ориентированный путь, упомянутый здесь:
$image_string = $image->save();
Я получил ошибку (от Moodle отладчик):
Неустранимая ошибка: вызов неопределенного метода simple_html_dom_node :: save () …
Так что я подумал, так как я работаю с Moodle, он может иметь что-то
делать с Moodle, поэтому я просто сделал простое (не объектно-ориентированное?)
путь из того же руководства:
$image_string = $image;
Затем просто проверить / подтвердить, что он был преобразован в строку, я
сделал:
echo '$image TYPE: '.gettype($image);
echo '<br><br>';
echo '$image_string TYPE: '.gettype($image_string);
Но это печатает:
$image TYPE: object
$image_string TYPE: object
Так что вопрос почему ??? Я делаю что-то неправильно?
Вы просто приводите его к строке обычным способом:
$image_string = (string)$image
Использовать внешний текст
$image_string = $image->outertext();
Я посмотрел в коде. функция сохранения возврата
$ret = $this->root->innertext();
Но это метод класса simple_html_dom
, После поиска вы получаете объект simple_html_dom_node
, У него нет такого метода и он не наследуется. Но имеет text
, innertext
а также outertext
,
$ Image-> текст ();
это сработало для меня