Expression régulière qui supprime les contenus des balises Javascript

Résolu
jabs123 Messages postés 19 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 6 juillet 2007 - 22 janv. 2007 à 15:26
jabs123 Messages postés 19 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 6 juillet 2007 - 23 janv. 2007 à 07:09
Bonjour,
Je suis vraiment rouillé sur regexp, je veux supprimer les balises javascripts et leurs contenu,
mon but est de récuperer le contenu d'une page, voici la fonction:

function notag($txt)
{
    //Supprime d'abord les contenus des balises Javascript
    $txt = ereg_replace("<script * ([^<]*) </script>", "" , $txt) ;<---- c'est ici que çà ne marche pas
   
    // Vire tous les balises
   // ^ signifie "tout sauf"
   // + signifie 1 car au moins
   $pattern = "<[^>]+>";
   // remplace par vide
   return(ereg_replace($pattern,"",$txt));
}
Si vous avez une idée ?
JabsDev

7 réponses

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
22 janv. 2007 à 16:35
Salut

Bon voilà ta petite regexp : preg_replace("/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/","", $txt);
Elle enlève tout en même temps....

Bonne prog @+

-- The Rubik's Man --
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 janv. 2007 à 18:50
Salut,

et si t'as deux balises script, ça doit aussi bouffer ce que t'as entre les deux...

une regexp n'assureras pas de résultat garenti pour cette raison...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

3
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
22 janv. 2007 à 21:14
Ok donc tu n'as pas testé la regexp.... tiens je vais meme te donner une chaine de caractères pour tester et tu verras par toi meme...

<?php
    $var = "<html><head><script type='text/javascript'>var blabler = function(){alert('salut')};</script><script type='text/javascript'>var ddd = function(){alert('sedddd')};</script></head><script type='text/javascript'>var fff = function(){alert('fdgfsgt')};</script>salut vous<script type='text/javascript'>var fffk = function(){alert('sfdfds')};</script></html>";

    echo htmlspecialchars(preg_replace("/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/","", $var));
?>

comme tu vois j'ai mis pas mal de balise script... et dans le body j'ai mis une span entre 2 scripts... et donc tu verras par toi meme que tout fonctionne parfaitement

-- The Rubik's Man --
3
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
22 janv. 2007 à 20:19
Je ne comprends pas ce que tu veux dire... car oui si il y a 2 balises script comme : " <script> ..... </script>"
Tout ce qu'il y a à l'intérieur est également supprimé avec ma regexp !!! et pas seulement les balises script

Peut être que je ne t'ai pas compris....

-- The Rubik's Man --
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 janv. 2007 à 20:37
Salut,

<script ...> javascript1</script>

code html qui sera également supprimé, et qui ne devrait pas...

<script ...> javascript2</script>

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
22 janv. 2007 à 22:01
Salut,
Pas très sur cette méthode... Il suffit simplement de mettre une variable ou un commentaire contenant "</script>" et le reste du contenu ne sera pas supprimer (du moins je crois...). Enfin c'est vraiment important si ce code sert à sécurisé quelque chose sinon cette méthode suffit amplement.

For every choice, a consequence (Fable)
0
jabs123 Messages postés 19 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 6 juillet 2007
23 janv. 2007 à 07:09
Merci beaucoup Rubiks10 , et à vous tous
JabsDev
0
Rejoignez-nous