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 10/07/2006, 12h30   #1
Membre confirmé
 
Inscription : février 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 493
Points : 207
Points : 207
Par défaut Preg_replace dans une page html

Bonjour,

J'ai un fichier html et je voudrais retirer ce qu il y a entre le
Code :
<script ...> ...</script> et <style ...> ... </style>
Pour cela, j'utilise preg_replace :
Code :
$text = preg_replace('|<script[^>]*>[^<]*</style>|i','',$text);

Ca marche pas...

Qd je mets
Code :
$text = preg_replace('|<script[^>]*>[^<]*</|i','',$text);
ca fonctionne deja mieux mais j'ai du trash

On peut pas récupérer toute l'expression </style> ou </script>?

Merci
trihanhcie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 12h38   #2
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
tu veux récupérer ou remplacer ?

parce que preg_replace comme son nom l'indique, il écrase ce que tu a dans tes balise par du vide.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 12h39   #3
Membre confirmé
 
Inscription : février 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 493
Points : 207
Points : 207
je veux supprimer Ca me sert a rien ce qu il y a entre <script> et </script>

Le problème vient de mon je suppose... Ca doit pas etre comme ca pour dire que l'expression se termine par </script>...

Merci
trihanhcie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 12h43   #4
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
$text = preg_replace('#<script[^>]*>.*</style>#Usi','',$text);
Usi, c'est la bonne combinaison pour lire toute la page en multi-ligne, casse non sensitive, et non gourmand.

logiquement ca devrait marcher.

si ca marche pas, fait un preg_match, pour voir ce que ca prend.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2006, 14h11   #5
Membre confirmé
 
Inscription : février 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 493
Points : 207
Points : 207
wow Merci

Moi qui cherchait à faire des multilignes avec preg_matches dps lgt... Ca marche en tout cas merci
trihanhcie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 15h58   #6
Membre confirmé
 
Inscription : février 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 493
Points : 207
Points : 207
mmm .. j'ai encore quelques problèmes pour les expressions régulières...

Je voudrais prendre tout excepté un groupe de mot.

Par exemple, j'ai :
Code :
1
2
3
 
<span id = "toto"> ... </span>
<span id = "titi">... </span>
Je voudrais une expression régulière qui me trouve tout ce qu il y a entre les span sauf id = "toto"

j'ai essayé :
Code :
1
2
 
preg_match_all(|<span id = \"[^(toto)*]\">(.*)</span>\Uis,$text,$matches)
mais ca marche pas

Merci
trihanhcie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 16h33   #7
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
preg_match_all(|<span id = \"[^(toto)*]\">(.*)</span>\Uis,$text,$matches)
déja pourquoi tu \ les " ... ca sert a rien

apres :
Code :
preg_match_all(#<span id = "(?!toto)">(.*)</span>#Usi,$text,$matches)
ca devrait marcher, voir ce site : http://www.lumadis.be/regex/tuto_pcre.php#look

Voila.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 16h51   #8
Membre confirmé
 
Inscription : février 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 493
Points : 207
Points : 207
heuu oui en effet en fait pour te dire la vérité, j'utilisais regexp en javascript ^^ mais bon comme c'est un problème d'expression régulière, j'ai préféré le mettre ici

Merci pour le lien !!
trihanhcie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h32.


 
 
 
 
Partenaires

Hébergement Web