Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1514 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme pattern pour eregi_replace()

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme pattern pour eregi_replace()

n°1599498
JokariSan
Posté le 14-08-2007 à 16:31:51  profilanswer
 

Bonjour
 
J'ai le contenu d'une page HTML dans une string
et je voudrais supprimer seulement certaines balises  
telles que <head> , <style>, <script>
 
je voudrais utiliser la methode eregi_replace()
mais je galère a définir le pattern
 
voici ce que j'ai essayé (les Regexp c vraiment pas mon fort pour le moment) :
 
$Pattern = "(<[style][A-Za-z0-9]{1,}>[A-Za-z0-9]</[style]+> )";
 
ca marche mais ce que je voudrais obtenir c'est supprimer tous les expression qui par ex :
commencent par <style  
+ qui peut contenir des parametres (ex: type="text/css" )
+ tout le texte qui peut suivre (ex: ".maclasse { border:1px.... };" )
+ jusqu'a </style>
 
Pour info mon environement de travail :
- Windows XP, PHP5
 
Pouvez vous me filer un coup de main
merci

mood
Publicité
Posté le 14-08-2007 à 16:31:51  profilanswer
 

n°1599536
e-deby
Posté le 14-08-2007 à 17:56:12  profilanswer
 

bon c'est pas avec ereg, mais je te donne une solution ultra simpliste avec preg...

 
Code :
  1. $s = preg_replace('|<style(.*)</style>|iUs', '', $s);
 

pas testé mais ca devrait marcher


Message édité par e-deby le 14-08-2007 à 17:57:19
n°1599547
dnlilas
Posté le 14-08-2007 à 18:21:20  profilanswer
 

@e-deby
J'ai testé avec d'autres balises etc... en changeant ce qu'il faut. Ca marche ! Code bien utile dans bien des cas. Merci.

n°1599594
jokari34
Posté le 14-08-2007 à 22:30:49  profilanswer
 

merci bien.
je testerai ca jeudi
au fait ca fait quoi "iUs" ?
 
autre question:
- vous connaisez une classe qui permette soit d'extraire toutes les balises HTML d'images par exemple d'une chaine HTML  et les met dans un array ?
 
- ou alors un parser de code HTML qui crée une représentation XML, ou un array, ou un objet (enfin bref une sorte de DOM)  
pour manipuler (ou au moins acceder aux valeurs) les element du doc HTML avec PHP
bref comme utiliser le DOM HTML en Javascript
 
ca me serait super utile.


Message édité par jokari34 le 14-08-2007 à 22:36:00
n°1599598
e-deby
Posté le 14-08-2007 à 22:46:03  profilanswer
 

Pour les images, essayes un truc du genre

 
Code :
  1. // $s est le HTML
  2. preg_match_all('|<img(.*)src="(.*)"(.*)>|iUs', $s, $matches);
  3. var_dump($matches);
 

Pour le Uis, lisez la doc alala on peut pas le faire à votre place
http://www.php.net/manual/fr/refer [...] ifiers.php

 
Citation :


U (PCRE_UNGREEDY)
    Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ?. De même, si cette option est activée, le ? rendra gourmand une séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantifieur (.e.g. .*?).

 

i (PCRE_CASELESS)
    Effectue une recherche insensible à la casse.

 

s (PCRE_DOTALL)
    Avec cette option, le méta-caractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.

 


Enfin, pour le DOM, avec du HTML par définition ca va etre compliqué vu que ca n'est pas sensé respecter strictement une arbo correcte. Tu dois pouvoir bidouiller une méthode, mais bon ca sera pas fiable
Avec du XHTML par contre la ca devrait se faire justement tout seul non ?


Message édité par e-deby le 14-08-2007 à 22:47:30
n°1599907
JokariSan
Posté le 16-08-2007 à 10:22:21  profilanswer
 

oui c sur qu'avec XHTML ca serait plus simple.
Mais combien ya de sites en XHTML ?
je dois m'adapter a ce qui existe.
 
dans ce cas comment ca se fait, que meme avec le code HTML le plus pourri, le DOM est créé correctement et pleinement exploitable avec Javascript ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme pattern pour eregi_replace()

 

Sujets relatifs
[JS]Problème d'execution de fction sur onchange() avec IE7Probleme marge IE et objet COM
Problème d'include entre sous-domainesprobleme dans un projet (niveau debutant)
Problème avec nom de champs identique[Résolu] Problème ActionScript - fonction onLoad
Problème ActionScript (Flash) - onLoad[VBS] Probleme WMI distant (sur Win32_Product)
{Résolu} problème URL et variables[C++] Problème stringstream/fstream et rdbuf() [résolu]
Plus de sujets relatifs à : probleme pattern pour eregi_replace()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR