Я создаю простой сценарий блога, который позволяет пользователям помещать html в контент (я использую htmlpurifier). Я хочу, чтобы пользователи могли размещать URL-адреса изображений, но только от imgur. Как я могу лучше всего подойти к этому методу с помощью preg_match и str_replace?Использование preg_match и str_replace для проверки ссылки
Пример. Если URL-адрес изображения не из imgur, то используйте str_replace и удалите его.
Позабавившись с DOMDocument (Jack на посоветовал чат использовать DOM, а) я придумал решение мой собственный вопрос.
// let's pretend <img src="" /> is inside content
$content = $_POST['content'];
$doc = new DOMDocument;
libxml_use_internal_errors(true);
$doc->loadHTML($content);
libxml_clear_errors();
foreach ($doc->getElementsByTagName('img') as $img) {
if (parse_url($img->getAttribute('src'), PHP_URL_HOST) != 'i.imgur.com') {
$content = preg_replace("/<img[^>]+\>/i", "(invalid image provider) ", $content);
echo $content;
} else {
echo $content;
}
}
вы сделали любые попытки это еще? Если да, пожалуйста, покажите это. – Daedalus
Проверьте это http://stackoverflow.com/questions/2143202/any-preg-match-to-extract-image-urls-from-text – cartina
Будет ли что-то подобное выполнять эту работу? If (! Preg_match ('/ http: \/\/i \ .imgur \ .com \ [^ &] +/', $ url)) {$ err =' Недействительно '; } –