Supprimer le contenu des balises script [Résolu]

Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
- - Dernière réponse : jdmcreator
Messages postés
656
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
@++
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
1
3
Merci
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á

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 154 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vilhjalms
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
0
Merci
yess !
merci !
@+
Commenter la réponse de cs_caviar
Messages postés
4
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
16 janvier 2009
Commenter la réponse de petitchevalroux
Messages postés
656
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
0
Merci
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 !
Commenter la réponse de jdmcreator