Avatar billede sjh Nybegynder
01. marts 2005 - 21:48 Der er 1 kommentar og
1 løsning

eregi replace <script>

Jeg skal ha lavet en funktion/script som kan finde alle <script.. /script> og den skal så gemme dem i et array eller noget i den stil.. erstatte dem med et unik "bogmærke" så de kan indsættes igen

Jeg har prøvet lidt selv.. :D men har ikke kunne få det til at virke..


    if (eregi("<script(.*)</script>", $strHtml, $arrScript)) {
      if (is_array($arrScript)) {
        $intLen = count($arrScript);
        for ($i=0; $i <= $intLen; $i++) {
          $strHtml = preg_replace($arrScript[$i], "[#".$i."#]", $strHtml);
        }
      }
    }

her skal jeg så behandle det html kode som er tilbage..

    if (is_array($arrScript)) {
      $intLen = count($arrScript);
      for ($i=0; $i <= $intLen; $i++) {
        $strHtml = preg_replace("[#".$i."#]", $arrScript[$i], $strHtml);
      }
    }
Avatar billede coderdk Praktikant
01. marts 2005 - 22:07 #1
Først og fremmest vil jeg bruge preg, da den som regel er hurtigere:

    $arrScript = array();
    if ( preg_match_all( "-<script.*?/script>-is", $text, $matches ) )
    {
        $arrScript = $matches[0];
        $i = 0;
        foreach ( $arrScript as $item )
        {
            $text = preg_replace( '/' . preg_quote( $item, '/' ) . '/', "[#$i#]", $text );
            $i++;
        }
    }
   
    echo "<b>Replaced</b>: <pre>" . htmlentities( $text ) . "</pre>";
   
    if ( is_array( $arrScript ) && ( $n = count( $arrScript ) ) > 0 )
    {
        for ( $i = 0; $i < $n; $i++ )
        {
            $text = preg_replace( "/\[#$i#\]/", $arrScript[$i], $text );
        }
    }
 
    echo "<b>Finally</b>: <pre>" . htmlentities( $text ) . "</pre>";
Avatar billede sjh Nybegynder
01. marts 2005 - 22:19 #2
det virker bare perfekt.. super.. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester