Поиск картинок строковыми функциями, php

198
13 ноября 2017, 21:51

Здравствуйте, возникла задача выбрать картинки с помощью строковых функций (без preg_match без прочих библиотек, dom и прочего), перебрал кучу вариантов, даже explode, strpos но получаются костыли.

Есть ли хорошее решение?

<html>
    <body>
        <img src='/photo/1.jpg' width='200'>
        <img src="/photo/2.jpg" width='200'>
        <img src=/photo/3.jpg width=200>
    </body>
</html>

Как выбрать эти картинки красиво только строковыми функциями?

Answer 1

Правильным решением будет использовать DOM парсер.
Это несложно и к тому же он есть в нативной поставке php.

$html = <<<HTML
<html>
    <body>
        <img src='/photo/1.jpg' width='200'>
        <img src="/photo/2.jpg" width='200'>
        <img src=/photo/3.jpg width=200>
    </body>
</html>
HTML;
$dom = new DomDocument;
$dom->loadHTML($html);
$imgs = $dom->getElementsByTagName('img');
foreach ($imgs as $img) {
    echo $img->getAttribute('src')."\n";
}

/photo/1.jpg
/photo/2.jpg
/photo/3.jpg

READ ALSO
Удаление элемента из дерева

Удаление элемента из дерева

Не получается удалить слово из нагруженного дереваСмотрю в дебаге, на последнем узле слова адреса в каждой ячейке массива не NULL и bool не равен...

323
Две параллельные таблички в С++ [требует правки]

Две параллельные таблички в С++ [требует правки]

Суть проблемы такова, требуется нарисовать правила игры (в консоле) в левой стороне, а справа нарисовать поле игры

230
Имеет ли смысл выделять память под объект Mat в куче?

Имеет ли смысл выделять память под объект Mat в куче?

Добрый деньТолько начинаю работать с библиотекой opencv, в связи с чем возник вопрос: Лучше объявлять указатели Mat или же сами объекты?т

205