Supprimer le contenu des balises script [Résolu]

cs_caviar 329 Messages postés samedi 4 janvier 2003Date d'inscription 29 mars 2015 Dernière intervention - 26 févr. 2007 à 21:20 - Dernière réponse : jdmcreator 656 Messages postés samedi 30 décembre 2000Date d'inscription 20 juillet 2012 Dernière intervention
- 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

vilhjalms 591 Messages postés mercredi 20 juillet 2005Date d'inscription 16 juillet 2009 Dernière intervention - 26 févr. 2007 à 21:33
+3
Utile
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á
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de vilhjalms
cs_caviar 329 Messages postés samedi 4 janvier 2003Date d'inscription 29 mars 2015 Dernière intervention - 27 févr. 2007 à 00:04
0
Utile
yess !
merci !
@+
Commenter la réponse de cs_caviar
petitchevalroux 4 Messages postés mardi 4 février 2003Date d'inscription 16 janvier 2009 Dernière intervention - 16 janv. 2009 à 17:19
Commenter la réponse de petitchevalroux
jdmcreator 656 Messages postés samedi 30 décembre 2000Date d'inscription 20 juillet 2012 Dernière intervention - 15 janv. 2011 à 17:40
0
Utile
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.