ユーザーがコンテンツにhtmlを挿入できるようにする簡単なブログスクリプトを作成しています(htmlpurifierを使用しています)。ユーザーが画像の URL を投稿できるようにしたいのですが、imgur からのみです。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;
}
}