Schocki: Flash-Einbindung in PHP mittels str_replace

Also ich habe bei mir im Forum ermöglicht, das man als User Flash-Animationen einbinden kann. Allerdings sieht man die Flashs nur mit dem Internet-Explorer, da nur er das <object>-Tag kennt, also dies hier funzt:

$post = str_replace("[flash]","<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="400" height="320"><param name="movie" value="",$post);
$post = str_replace("[/flash]",""><param name="quality" value="high"><param name="scale" value="exactfit"><param name="menu" value="false"><pram name="bgcolor" value="#000000"></object>",$post);

Der Netscape allerdings erkennt Flash nur mit dem <embed>-tag, also so:

$post = str_replace("[flash]","<embed src="",$post);
$post = str_replace("[/flash]",""><menu="false" quality="high" bgcolor="#000000" width="400" height="320" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>",$post);

Mein Problem ist, das ich ja beides nicht so einzeln machen kann und deshalb meine dringende Frage:

Wie verknüpfe ich beides in einem str_replace ???

$post ist dabei die URL zur Flash-Datei, die der User eingibt.

Bisher konnte mir noch keiner helfen (in mehreren Foren)...

  1. hi,
    die browser interessieren sich gegenseiteig nicht für <object> oder <embed>.
    du kannst in deine var $post beides schreiben oder auch geschachtelt.
    martin

    1. hi,
      die browser interessieren sich gegenseiteig nicht für <object> oder <embed>.
      du kannst in deine var $post beides schreiben oder auch geschachtelt.
      martin

      -------------------------------------

      Das ist ja gerade der Punkt, wie soll ich dies verschachteln ???

      1. hi,

        Das ist ja gerade der Punkt, wie soll ich dies verschachteln ???

        so:

        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
         codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"
         id=opener width=480  height=320 vspace="0" hspace="0">
                      <param name=movie value="dein-file.swf">
                      <param name=bgcolor value=#FFFFFF>
                      <param name="LOOP" value="false">
                      <embed src="dein-file.swf" bgcolor=#FFFFFF  width=760 height=385 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" loop="false" vspace="0" hspace="0">
                      </embed>
                    </object>

        gruss martin

        1. hi,

          Das ist ja gerade der Punkt, wie soll ich dies verschachteln ???

          so:

          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
          codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"
          id=opener width=480  height=320 vspace="0" hspace="0">
                        <param name=movie value="dein-file.swf">
                        <param name=bgcolor value=#FFFFFF>
                        <param name="LOOP" value="false">
                        <embed src="dein-file.swf" bgcolor=#FFFFFF  width=760 height=385 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" loop="false" vspace="0" hspace="0">
                        </embed>
                      </object>

          gruss martin

          ---------------------------

          Das weiß ich auch, du verstehst mich falsch!

          Wie muß ich dies mit str_replace und der Variable $post verschachteln?

          1. Hi,
            warum nicht einfach...

            echo "<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" id=opener width=480 height=320 vspace="0" hspace="0">
             <param name=movie value="$movie">
             <param name=bgcolor value=#FFFFFF>
             <param name="LOOP" value="false">
             <embed src="$movie" bgcolor=#FFFFFF  width=760 height=385 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" loop="false" vspace="0" hspace="0">
             </embed>
            </object>"

            ...wobei du $movie natürlich durch deine Variable ersetzen musst.

          2. Moin

            Wie muß ich dies mit str_replace und der Variable $post verschachteln?

            Indem du reguläre Ausdrücke benutzt?

            $post=preg_match("/".preg_quote("[flash]")."(\S+)".preg_quote("[/flash]")."/",'<object ..... <param name="movie" value="\1"> ...value="#00000"><embed src="\1"><menu ... </object>,$post);

            oder so ähnlich.

            --

            Henryk Plötz

            Grüße von der Ostsee