PHP ile bir div içeriğini değiştirin

2 Cevap php

dün, "bir php fonksiyonu ile bir DIV id değiştirmek için Hom" ilgili bir soru önergesi ve birisi bir düzenli ifade ile doğru cevabı buldum.

Sorun diğer aynı sorunlar üzerinde yöntemini Aplly Bu yanıt kullanmak istedi olmasıdır.

Düzenli ifadeler çok kötüyüm Ama, ben yapamadım.

Yani sorun ben FCKEditor ile bazı videolar yüklemek ve benim veritabanında video script koymak ve sonuç böyledir:

<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>

When I echo this content once in my PHP page, It works great. More than once, the videos doesn't appear. Which is obvious because of the unique ID. As you can see, the content has these ids:

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

So my question is: Is there a function that can replace the string "player959093" or concatenate it with some other string to resolve the display problem?

Thank you very much, Regards.

2 Cevap

Preg_replace_callback fonksiyonu ile deneyin:

$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);

Ben kodu test ettik ama çalışması gerekir.

Neden concanation operatör nokta kullanmayın. '

"a" . "b" = "ab"