Как преобразовать объект simple_html_dom обратно в строку?

я использовал PHP Простой HTML DOM Parser сначала преобразовать строку HTML в объект DOM str_get_html() метод simple_html_dom.php

$summary = str_get_html($html_string);
  1. Затем я извлек <img> объект из $summary от

    foreach ($summary->find('img') as $img) {
    $image = $img;
    break;
    }
    

    Теперь мне нужно преобразовать объект $ image DOM обратно в строку. я использовал
    Объектно-ориентированный путь, упомянутый здесь:

    $image_string = $image->save();
    

    Я получил ошибку (от Moodle отладчик):

    Неустранимая ошибка: вызов неопределенного метода simple_html_dom_node :: save () …

  2. Так что я подумал, так как я работаю с 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
    

Так что вопрос почему ??? Я делаю что-то неправильно?

3

Решение

Вы просто приводите его к строке обычным способом:

$image_string = (string)$image
3

Другие решения

Использовать внешний текст

$image_string = $image->outertext();

Я посмотрел в коде. функция сохранения возврата

$ret = $this->root->innertext();

Но это метод класса simple_html_dom, После поиска вы получаете объект simple_html_dom_node, У него нет такого метода и он не наследуется. Но имеет text, innertext а также outertext,

2

$ Image-> текст ();
это сработало для меня

1
По вопросам рекламы [email protected]