Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2006, 18h52   #1
Invité de passage
 
Inscription : décembre 2003
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1
Points : 0
Points : 0
Envoyer un message via MSN à Easyweb
Par défaut Problème pour enlever les tags javascript d'une source HTML

Bonjour à toute la communauté

Je viens quemander une petite aide car ce problème commence à m'énerver (quelques heures de perdues cet après-midi).

Je souhaiterais enlever toutes les balises javascript (et leur contenu) sur une source html distante que j'aspire avec une fonction fopen.

Voici le code que j'ai et qui ne marche pas:

$ligne = eregi_replace('`^<script(.+)</script>{1}$`','',$ligne);

Merci de m'aider, j'ai cherché sur de nombreux sites et tutorials consacrés aux regex mais là je bloque

Bonne soirée

YANN
Easyweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 19h10   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Code :
1
2
$ligne = 'azerty ezfze<script language="javascript">jirge ;</script>rg rt';
echo htmlentities(preg_replace('#(?:<script)(?:.+)>(.*?)(?:</script>)#', '\\1', $ligne));
Si tu ancres avec ^ et $, tu ne remplaceras jamais tout :/
Sinon, ton {1} ne s'applique qu'au signe de fin de tag, à savoir ">".
Enfin, il faut utiliser les parenthèses non capturantes dans ton cas : (?:)
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2006, 21h53   #3
Membre éprouvé
 
Avatar de GregPeck
 
Inscription : novembre 2005
Messages : 530
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 530
Points : 464
Points : 464
J'ai le même problème. Je ne sais pas pourquoi tu fait ça mais as tu pensé aussi au évenement javascript du style onload, onclick, etc... ?

Moi j'ai choisi la solution de traiter le problème avec la librairie DOMXML.
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 01h10   #4
Membre confirmé
 
Avatar de AlphaYoDa
 
Inscription : novembre 2004
Messages : 213
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 213
Points : 207
Points : 207
j'ai eu ce problème très récemment, j'ai utilisé : http://pixel-apes.com/safehtml

ce qui me dérange un peu c'est qu'il essaie aussi de régler les problèmes de synthaxe : exemple : si un <p> n'est pas fermé, il rajoutera la fermeture </p>

Mais il efface très bien le contenu *dangereux*, ce n'est pas que les balises scripts si c'est uniquement ça que tu cherches.

AlphaYoDa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 02h10   #5
Membre éprouvé
 
Avatar de GregPeck
 
Inscription : novembre 2005
Messages : 530
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 530
Points : 464
Points : 464
Le problème c'est qu'il efface tout ce qui peux contenir du danger et pas seulement ce qui contient du danger.

Par exemple il supprime les balise html, head, body alors que

Code :
1
2
3
4
5
<html>
<head></head>
<body>
</body>
</html>
n'est pas un code très dangereux...

P:S: AlphaYoDa, tiens nous au courant quand il t'auront répondu sur le "clean up"...
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h03.


 
 
 
 
Partenaires

Hébergement Web