2010-03-19 5 views
2

вчера, я разместил вопрос о «Hom, чтобы изменить идентификатор DIV с помощью php-функции», и кто-то нашел правильный ответ с регулярным выражением.Замените содержимое div на PHP

Проблема в том, что я хотел использовать этот ответ, чтобы использовать метод для других тех же проблем.

Но, поскольку я очень плохо разбираюсь в регулярных выражениях, я не мог.

Таким образом, проблема в том, что я загрузить некоторые видео с FCKEditor и поставить видео сценарий в моей базе данных, и результат так:

<div id="player959093-parent" style="text-align: center;float: left;"> 
<div style="border-style: none; height: 160px; width: 270px; overflow: hidden; background-color: rgb(220, 220, 220); background-image: url(http://localhost/fckeditor/editor/plugins/flvPlayer/flvPlayer.gif); background-repeat:no-repeat; background-position:center;"><script src="http://localhost/fckeditor/editor/plugins/flvPlayer/swfobject.js" type="text/javascript"></script> 
<div id="player959093"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player. 
<div id="player959093-config" style="display: none;visibility: hidden;width: 0px;height:0px;overflow: hidden;">url=/editeur/images/flash/FOO.flv width=270 height=160 loop=false play=false downloadable=false fullscreen=true displayNavigation=true displayDigits=true align=left dispPlaylist=none playlistThumbs=false</div> 
</div> 
<script type="text/javascript"> 
    var s1 = new SWFObject("http://localhost/editeur/javascript/fckeditor/editor/plugins/flvPlayer/mediaplayer.swf","single","270","160","7"); 
    s1.addVariable("width","270"); 
    s1.addVariable("height","160"); 
    s1.addVariable("autostart","false"); 
    s1.addVariable("file","/editeur/images/flash/FOO.flv"); 
    s1.addVariable("repeat","false"); 
    s1.addVariable("image",""); 
    s1.addVariable("showdownload","false"); 
    s1.addVariable("link","/editeur/images/flash/FOO.flv"); 
    s1.addParam("allowfullscreen","true"); 
    s1.addVariable("showdigits","true"); 
    s1.addVariable("shownavigation","true"); 
    s1.addVariable("logo",""); 
    s1.write("player959093"); 
</script></div> 
</div> 

Когда я повторяю это содержание раз в PHP страницу, оно работает Великий. Несколько раз видеоролики не отображаются. Что очевидно из-за уникального идентификатора. Как вы можете видеть, содержание имеет следующие идентификаторы:

div id="player959093-parent" 
div id="player959093" 
div id="player959093-config 
s1.write("player959093"); 

Так что мой вопрос: Есть ли функция, которая может заменить строку «player959093» или сцепить его с какой-либо другими строки, чтобы решить проблему отображения?

Большое спасибо, С уважением.

ответ

2

Попробуйте с функцией preg_replace_callback:

$HTMLCODE="Your html code"; 
$fn=create_function('$matches','$replacement="player".mt_rand();return preg_replace("#player\d+#",$replacement,$matches[0]);'); 
echo preg_replace_callback("#<div[^>]*id=\"player\d+-parent\".*?</script>\s*</div>\s*</div>#si",$fn,$HTMLCODE); 

Я не проверял код, но он должен работать.

+0

Спасибо за это регулярное выражение! – Zakaria

0

Почему вы не используете оператор контатации dot '.'

"a" . "b" = "ab" 
+0

Как я могу это сделать? Спасибо! – Zakaria

Смежные вопросы