게시판 글쓰기 iframe 허용 코드 수정

This commit is contained in:
thisgun
2017-12-27 09:14:48 +09:00
parent 68f8836cfb
commit 5abc41cdb9

View File

@ -21,11 +21,24 @@ if( !class_exists('HTMLPurifier_Filter_Iframevideo') ){
*/ */
public function preFilter($html, $config, $context) public function preFilter($html, $config, $context)
{ {
$html = preg_replace('#<iframe#i', '<img class="Iframevideo"', $html); if (strstr($html, '<iframe')) {
$html = preg_replace('#</iframe>#i', '</img>', $html); $html = preg_replace_callback('/<iframe.*?src="https?:\/\/www\.youtube\.com\/embed\/([^"]*)[^>]*>(.*?)?\/iframe>/si', array($this, 'trust_url_match'), $html);
$html = preg_replace_callback('/<iframe.*?src="https?:\/\/player\.vimeo.com\/video\/([^"]*)[^>]*>(.*?)?\/iframe>/si', array($this, 'trust_url_match'), $html);
//$html = preg_replace('#<iframe#i', '<img class="Iframevideo"', $html);
//$html = preg_replace('#</iframe>#i', '</img>', $html);
}
return $html; return $html;
} }
public function trust_url_match($matches)
{
$str = $matches[0];
if( $matches[1] ){
$str = preg_replace('#<iframe#i', '<img class="Iframevideo"', $str);
$str = preg_replace('#</iframe>#i', '</img>', $str);
}
return $str;
}
/** /**
* *
* @param string $html * @param string $html
@ -48,7 +61,7 @@ if( !class_exists('HTMLPurifier_Filter_Iframevideo') ){
{ {
// Domain Whitelist // Domain Whitelist
$youTubeMatch = preg_match('#src="https?://www.youtube(-nocookie)?.com/#i', $matches[1]); $youTubeMatch = preg_match('#src="https?://www.youtube(-nocookie)?.com/#i', $matches[1]);
$vimeoMatch = preg_match('#src="http://player.vimeo.com/#i', $matches[1]); $vimeoMatch = preg_match('#src="https?://player.vimeo.com/#i', $matches[1]);
if ($youTubeMatch || $vimeoMatch) { if ($youTubeMatch || $vimeoMatch) {
$extra = ' frameborder="0"'; $extra = ' frameborder="0"';
if ($youTubeMatch) { if ($youTubeMatch) {