PHP Url Regex фильтрация - PullRequest
       5

PHP Url Regex фильтрация

0 голосов
/ 20 июня 2010

Пример URL:

http://p.static.com/i/logo.jpg

Я хочу иметь возможность извлекать URL-адреса из моего собственного CDN, на которые есть ссылки в строке, извлекать URL-адрес src и из файла и папок src, поэтому /i/logo.jpg, а затем замените его хэшированной версией, чтобы я мог использовать любую хеш-функцию, например encode('/i/logo.jpg').Я хотел бы, чтобы массив всех совпавших URL-адресов был возвращен, а затем я могу обработать и str_replace внутри строки.

Немного сложно, надеюсь, это имеет смысл.

Спасибо

1 Ответ

0 голосов
/ 20 июня 2010
function encode($val) {
    return preg_replace(
        '/(?<=http:\\/\\/p\\.static\\.com\\/).*/ie',
        'hash_function("\\0")',
        $val);
}

$src = ...; //HTML data

$d = new DOMDocument;
$d->loadHTML($src);

$images = $d->getElementsByTagName("img");
for ($i = 0; $i < $images->length; $i++) {
    $curval = $images->item($i)->getAttribute("src");
    $images->item($i)->setAttribute("src", encode($curval));
}

$newHtml = $d->saveHTML();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...