cs_caviar
Messages postés329Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention29 mars 2015
-
26 févr. 2007 à 21:20
jdmcreator
Messages postés647Date d'inscriptionsamedi 30 décembre 2000StatutMembreDernière intervention20 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', '<script', $foo);
$foo = preg_replace('/on([a-z]+)/i', 'on $1', $foo);