2012-02-15 1 views
0

Я буду обрабатывать файл XML, а иногда есть «плавающие фреймы» и «сценарий» теги мне нужно выйти, прежде чем я даже «xml- parse-it 'PHP стрип IFrames и сценарии теги (без htmlentities())

Я пытаюсь использовать некоторые регулярные выражения, но я ошибаюсь! :(

тест строки:

 $teststring = 'p><iframe src="http://www.facebook.com/plugins/like.php?href=abcdef&layout=standard&show_faces=false&width=450&action=like&colorscheme=dark&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowtransparency="true"></iframe></p>'; 

//todo clean this up// found this function on net. //more legacy stufff 
    $Rules = array(
     '@<script[^>]*?>.*?</script>@si', // Strip out javascript     
     '@&(cent|#162);@i', // Cent 
     '@&(pound|#163);@i', // Pound 
     '@&(copy|#169);@i', // Copyright 
     '@&(reg|#174);@i', // Registered 
     '@&#(d+);@e', // Evaluate as php 
---> PROBLEM--> '@&lt;iframe [^&lt;]&lt;.*?&lt;\/iframe&gt;@i', 

    ); 

    $Replace = array(
     '', 
     chr(162), 
     chr(163), 
     chr(169), 
     chr(174), 
     'chr()', 
     '', 

    ); 
     //expecting <p></p> 
    $data = preg_replace($Rules, $Replace, $teststring); 


      echo $data; 

ответ

1

Просто попробуйте этот

'@&lt;iframe(?:(?!&gt;).)*&gt;.*?&lt;\/iframe&gt;@i' 
+0

удивительный :) Спасибо! – user914584

+0

Превосходно .... Вы люди решетки. :) –

+0

спасибо большое .... :) @lake –