Отфильтруйте iframe, используя preg match - PullRequest
4 голосов
/ 02 августа 2011

Я пытаюсь отфильтровать iframe в своем посте, мой пост выглядит следующим образом

<!--videoplayer--><iframe title="YouTube video player" class="youtube-player" type="text/html" width="200" height="200" src="http://www.youtube.com/embed/IIYeKGNNNf4?rel=0" frameborder="0" allowFullScreen></iframe><!--endvideoplayer-->Blitz performs at Desifest 2010 in Toronto Canada, & Films music video with Navin Kundra for the song "Love You The Same" feat Kat Eyez & produced by Roach Killa from Blitz's new album "Get Blitz". Join my fanpage for more: WWW.FACEBOOK.COM/BLITZMUSIC *Special thanks to: Deesha, Dj Jump Off, Paul The Drummer, Surgeon, Umar, Navin Kundra, Nyrone, Sats B, Kat Eyez, B Don.  (New Album Coming Soon!)

Я просто хотел бы вернуть iframe, а не описание поста, поэтому я и хочу.

Спасибо

Ответы [ 3 ]

13 голосов
/ 02 августа 2011
preg_match('/<iframe.*src=\"(.*)\".*><\/iframe>/isU', $string, $matches);
echo ($matches[0]); //only the <iframe ...></iframe> part
echo ($matches[1]); //the src part. (http://www.youtube.com/embed/IIYeKGNNNf4?rel=0)
2 голосов
/ 09 августа 2011

Я снова и снова вижу одну и ту же ошибку, используя регулярное выражение для разбора html, ИСПОЛЬЗУЕМ ПАРАМЕТР HTML DOM .

include("simple_html_dom.php") ;
$string = <<< EOF
"<!--videoplayer--><iframe title="YouTube video player" class="youtube-player" type="text/html" width="200" height="200" src="http://www.youtube.com/embed/IIYeKGNNNf4?rel=0" frameborder="0" allowFullScreen></iframe>
<!--endvideoplayer-->Blitz performs at Desifest 2010 in Toronto Canada, & Films music video with Navin Kundra for the song "Love You The Same" feat Kat Eyez & produced by Roach Killa from Blitz's new album "Get Blitz". Join my fanpage for more: WWW.FACEBOOK.COM/BLITZMUSIC *Special thanks to: Deesha, Dj Jump Off, Paul The Drummer, Surgeon, Umar, Navin Kundra, Nyrone, Sats B, Kat Eyez, B Don. (New Album Coming Soon!)"
EOF;

$html = str_get_html($string);     
foreach($html->find('iframe') as $element)
{
       echo $element->src . '<br>';
}

выходы:

http://www.youtube.com/embed/IIYeKGNNNf4?rel=0

1 голос
/ 02 августа 2011
preg_match('#<iframe(.*?)></iframe>#is', $string, $matches);
echo $matches[1]; // 0 for <iframe></iframe> part.
...