Я использую HTML Purifier со следующей конфигурацией:Почему очиститель HTML удаляет src YouTube iframe?
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('URI.DisableExternalResources', false);
$config->set('Core.RemoveInvalidImg',true);
$config->set('URI.DisableResources', false);
$config->set('HTML.Allowed', 'p[align|style],strong,b,em,table[class|width|cellpadding],td,tr,h3,h4,h5,hr,br,u,ul,ol,li,img[src|width|height|alt|class],iframe[src|width|height|alt|class|frameborder|allowfullscreen],span[class],strike,sup,sub');
$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);
Когда я прохожу YouTube код:
<iframe width="560" height="315" src="http://www.youtube.com/embed/nS8xiUlYNO0" frameborder="0" allowfullscreen></iframe>
Следующая происходит на выходе (без ЦСИ):
<iframe width="560" height="315" src="" frameborder="0"></iframe>
Почему src удаляется?
Что распечатывается, если вы эхо-данные прямо перед тем, как попасть в очиститель HTML? –