Supprimer le contenu des balises script [Résolu]

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.