PHP除了带有正则表达式的YouTube之外的iframe iframe

时间:2012-05-14 09:24:44

标签: php iframe youtube strip

我想从除YouTube之外的HTML中删除所有iframe。

我已尝试使用此代码与插入符号除了YouTube关键字,但它不起作用。

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

1 个答案:

答案 0 :(得分:1)

由于谷歌搜索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);