Supprimer le contenu des balises script

Résolu
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 - 26 févr. 2007 à 21:20
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 15 janv. 2011 à 17:40
    Saluté ...
j'ai un petit casse tête à résoudre ...
j'aimerai filtrer les balises scripts dans un code html et les supprimer
imaginon que j'ai en html avant filtrage

<html>
<head>
<title>Test ereg</title>
</head>

<SCRIPT LANGUAGE="JavaScript">
function alert(){
window.open("index.php");
}
</SCRIPT>
rrrrrffffffffffggg

<SCRIPT>
function alert(){
window.open("index.php");
}
</SCRIPT>
Hello world !

</html>

j'aimerai sortir aprè filtrage

<html>
<head>
<title>Test ereg</title>
</head>

rrrrrffffffffffggg

Hello world !

</html>

j'ai trouvé quelques codes qui marchent pas mal sauf que ça me supprime tout entre le premier <script  et le dernier </script>
c'est à dire que ma lignerrrrrffffffffffggg
est supprimée aussi ... donc pas bon ...

je vous livre les codes où $texte est la source html citée plus haut ...
si vous avez un petit script un poil mieux ... merci !

le php

<?php
$filename = "script.html"; //fichier dans le même répertoire
$file = fopen($filename,"rb"); //Ouverture du fichier en lecture seule "r" et binaire"b"(compatibilité windows)
while($f = fread($file,filesize($filename))){ //Tant que y'a des lignes dans le fichier...
$texte = eregi_replace('(<script [^<]*language=["|\']?([^ "\']*)["|\']?[^>].*>([^<]*).*</script>)','', $f); //Remplacement des balises <script>etc.
//echo("$texte"); //affichage du résultat
}
fclose($file); //fermeture du pointeur

//------------un autre -----------------
/*
$toto= preg_replace('/<script(.+?)<\/script>/', '', $texte);
echo $toto;
*/
//------ et un autre ---------
$foo = $texte;
$foo = preg_replace('/<script\b/i', '&lt;script', $foo);
$foo = preg_replace('/on([a-z]+)/i', 'on $1', $foo);

echo $foo;
?>

vala vala
@++

4 réponses

vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
26 févr. 2007 à 21:33
Saell og blesuð

<?phpfunction strip_selected_tags($str, $tags "", $stripContent false){
    preg_match_all("/<([^>]+)>/i",$tags,$allTags,PREG_PATTERN_ORDER);
    foreach ($allTags[1] as $tag){
        if ($stripContent) {
            $str = preg_replace("/<".$tag."[^>]*>.*<\/".$tag.">/iU","",$str);
        }
        $str = preg_replace("/<\/?".$tag."[^>]*>/iU","",$str);
    }
    return $str;
}

$str='Votre chaine html';
$str=str_replace("\r\n",'',$str);
$str=strip_selected_tags($str,'<script>',true);
?>

Vilhjálms
Sigurðsdóttir aka Frëyjá
3
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
27 févr. 2007 à 00:04
yess !
merci !
@+
0
petitchevalroux Messages postés 4 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 16 janvier 2009
16 janv. 2009 à 17:19
0
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
15 janv. 2011 à 17:40
Merci beaucoup à petitchevalroux pour le lien, je cherchais une méthode depuis très longtemps !

JDMCreator
--------
Participez au nouveau projet : la wiki sur le javascript !
0
Rejoignez-nous