0

YouTube 以外の HTML からすべての iframe を取り除きたい。

YouTube キーワード以外にキャレット記号を付けてこのコードを試してみましたが、うまくいきませんでした。

$search[] = '@<iframe[^(youtube)]*?>.*?</iframe>@si';
$text = preg_replace($search, '', $document);
4

1 に答える 1

0

グーグルアップphp strip tags except youtubeでここにリンクされたので、別の答えを提案してみる必要があると思います.

HTML Purifierのようなライブラリを使いたいと思いませんか? Malte はすでにhttps://stackoverflow.com/a/12784081/2716927でこれを行う方法を提案しています。

テストされていないコードですが、次のように動作するはずです。

require_once 'htmlpurifier/library/HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Trusted', true);
$config->set('HTML.SafeIframe', true);
$config->set('URI.SafeIframeRegexp', '%^(https?:)?//(www\.youtube(?:-nocookie)?\.com/embed/|player\.vimeo\.com/video/)%'); //allow YouTube and Vimeo
$purifier = new HTMLPurifier($config);

$text = $purifier->purify($document);
于 2014-05-02T18:01:22.123 に答える