Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Aiuto espressione regolare con preg_replace

    Ciao,
    ho bisogno di un aiuto su due espressioni regolari da usare con la funzione preg_replace
    1) La prima che intercetti i tag <script> sostituendoli con $stringa1
    2) La seconda che intercetti i tag </script>sostituendoli con $stringa2

    Ovviamente con tutte le declinazioni possibili.
    Ad esempio per la prima devo individuare tag come
    <script>, <SCRIPT>, < SCRIPT >, < script language='JavaScript'> ecc

    Grazie mille

  2. #2
    A te interessa sostituire la stringa "<script>" con il contenuto di $stringa1 o quello che trovi all'interno dei tag <script></script>?

    Perchè da come ti sei spiegato credo ti basti un semplice str_replace!
    Fammi sapere.

  3. #3
    Parti da questa come base ed eventualmente aggiungi altri caratteri o simboli possibili:

    codice:
    <?php
    $rep1 = "BEGIN";
    $rep2 = "END";
    $string = 'asddada<script>var x = 1;</script>ciccio < SCRIPT>ciao   </scrIPT>';
    $patterns = array();
    $patterns[0] = '/<\s*script\s*[a-zA-Z0-9-\'" ]*>/i';
    $patterns[1] = '/<\/script>/i';
    $replacements = array();
    $replacements[0] = $rep1;
    $replacements[1] = $rep2;
    echo preg_replace($patterns, $replacements, $string);
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Prova qualcosa così per il tag di apertura
    codice:
    <\s*script.?>
    non testato

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Originariamente inviato da neroux
    Prova qualcosa così per il tag di apertura
    codice:
    <\s*script.?>
    non testato
    Grazie ma non funziona proprio
    codice:
    <?php
    $patt='<\s*script.?>';
    $html='<Script language "JavaScript" >';
    $html = preg_replace($patt, "<script>", $html);
    echo "
    
    ".htmlentities($html)."
    
    ";
    ?>
    Luca L.B.

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da lucalb
    Grazie ma non funziona proprio
    codice:
    <?php
    $patt='<\s*script.?>';
    $html='<Script language "JavaScript" >';
    $html = preg_replace($patt, "<script>", $html);
    echo "
    
    ".htmlentities($html)."
    
    ";
    ?>
    Ti ho dato solo la regexp base, ci vuole un po' di più come sintassi (vedi la risposta di satifal)

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Originariamente inviato da satifal
    Parti da questa come base ed eventualmente aggiungi altri caratteri o simboli possibili:
    Grazie, funziona bene.
    Luca L.B.

  8. #8
    Originariamente inviato da satifal
    Parti da questa come base ed eventualmente aggiungi altri caratteri o simboli possibili:

    codice:
    <?php
    $rep1 = "BEGIN";
    $rep2 = "END";
    $string = 'asddada<script>var x = 1;</script>ciccio < SCRIPT>ciao   </scrIPT>';
    $patterns = array();
    $patterns[0] = '/<\s*script\s*[a-zA-Z0-9-\'" ]*>/i';
    $patterns[1] = '/<\/script>/i';
    $replacements = array();
    $replacements[0] = $rep1;
    $replacements[1] = $rep2;
    echo preg_replace($patterns, $replacements, $string);
    ?>
    Ma leggete solo gli ultimi post?!?!?!

    Prego!

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Originariamente inviato da satifal
    Ma leggete solo gli ultimi post?!?!?!

    Prego!

    Questa però non la becca, che pattern ci vuole?
    codice:
    $string = "<script type='text/javascript'><!--//<![CDATA[   document.MAX_ct0 ";

  10. #10
    Originariamente inviato da lucalb
    Questa però non la becca, che pattern ci vuole?
    codice:
    $string = "<script type='text/javascript'><!--//<![CDATA[   document.MAX_ct0 ";
    Ti ho già detto che al mio esempio andavano aggiunti altri possibili simboli:

    codice:
    $patterns[0] = '/<\s*script\s*[a-zA-Z0-9-\'" =\/]*>/i';
    Un po' di iniziativa però non guasterebbe!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.