Конкретная проблема с моим скриптом, который включает в себя PHP, DOM и регулярные выражения - PullRequest
0 голосов
/ 01 апреля 2011

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

Сценарий завершен, за исключением следующего. Моя цель состоит в том, чтобы получить содержимое (это сделано) всех изображений поста, КРОМЕ ПЕРВОГО и добавить их к новому содержимому со значением varcontent1, 2, 3 и т. Д.

Скрипт запускается 25 раз (количество постов на странице), и есть переменная $i. Следующий код получает текущее содержимое сообщения и сохраняет его в $varcontent1. Также он получает все изображения всего сайта (со списком плохих слов) и печатает их в виде массива.

Мой вопрос: как мне сохранить текущие изображения в текущем сообщении? Наконец я преобразую их в <img src="xxxx"> (думаю, я знаю, как это сделать).

ОБНОВЛЕНО: результаты будут представлены в форме. Что если я добавлю URL-адреса текущих изображений в новую переменную записи?

Примечание: я могу получить изображения с DOM, потому что я загружаю страницу, а не loadHTML.

preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui', $content, $matches);

    preg_match_all('/\S+(list|of|bad|words)\S+/i', $content, $bads);

    $filtered = array_values(array_diff($matches[0], $bads[0]));

1 Ответ

1 голос
/ 01 апреля 2011

Попробуйте использовать смещение ...

preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui', $content, $matches, NULL, 1);

Не используйте 1,2,3 ... используйте массивы ...

$varcontent[$i]["content"] = $content;
$varcontent[$i]["images"] = array_unique($filtered);

При чтении сообщений ...

foreach($varcontent as $content){
    echo $content["content"]; // HTML or plain text
    foreach($content["images"] as $image){
         echo '<img alt="" src="'.$image.'"/>'; // All images
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...