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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème pour ajouter du texte après <body.> avec ereg_replace[RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème pour ajouter du texte après <body.> avec ereg_replace[RESOLU]

n°1113321
nargoroth
Posté le 08-06-2005 à 23:06:23  profilanswer
 

Je récupère une page html avec file_get_contents pour ajouter du texte en haut de la page et servir au surfer cette version modifiée.
Je veux faire ça bien en plaçant le texte après <body...> et non pas tout en haut même si celà marche quand même.
 
Pour faire celà j'essaye de détecter la balise <body> et j'ajoute derrière mon texte comme celà :
$page=file_get_contents($url);
$nouvelleversion = (ereg_replace("<[b|B][o|O][d|D][y|Y]>", "<body>Bonjour...", $page));
 
Celà fonctionne si ma balise <body> n'a pas de paramètre mais bien sûr certaines pages ont des paramètres... J'ai essayé cette version :
$page=file_get_contents($url);
$nouvelleversion = (ereg_replace("<[b|B][o|O][d|D][y|Y](.*)>", "<body>Bonjour...", $page));
Mais d'une part je perd les paramètres et d'autre part le (.*) contient toute la page et ne s'arrête pas au premier ">" après <body mais au dernier de la page! pffff :(
 
Voilà, désolé pour le roman, et vraiment un grand merci si quelqu'un peut m'aider, les regex c'est toujours la misère :(


Message édité par nargoroth le 09-06-2005 à 03:08:37
mood
Publicité
Posté le 08-06-2005 à 23:06:23  profilanswer
 

n°1113437
afbilou
pouet your life
Posté le 09-06-2005 à 00:19:59  profilanswer
 

Si tu bosses sur des pages correctement ecrites (respectant le standard html ou xhtml) tu peux triturer le code a loisir avec  les fonctions de manipulation du DOM de php http://fr2.php.net/manual/fr/ref.domxml.php

n°1113440
FlorentG
Unité de Masse
Posté le 09-06-2005 à 00:20:34  profilanswer
 

J'allais le dire :D

n°1113446
masklinn
í dag viðrar vel til loftárása
Posté le 09-06-2005 à 00:23:05  profilanswer
 

la regex d'entrée est incorrecte de toute façon [:petrus75]
 
enfin, sauf si tu veux que ça puisse matcher

<||||>


[:petrus75]
 
J'ai déjà dit que je supportais pas les mecs qui bricolaient le code sans rien y comprendre? [:petrus75]
 
Puis comme tu réinjectes pas les groupes capturés dans le flux de sortie, tu m'étonne que tu les perds [:petrus75]


Message édité par masklinn le 09-06-2005 à 00:26:05

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1113448
afbilou
pouet your life
Posté le 09-06-2005 à 00:24:19  profilanswer
 

sinon tu peux utiliser :

Code :
  1. $pattern = '#<body([^>]*)>#Usi';
  2. $montrucenplus = 'blabla ...';
  3. $lapagehtml = file_get_contents($url);
  4. $lapagehtml = preg_replace($pattern , '<body \1>'.$montrucenplus , $lapagehtml);


Message édité par afbilou le 09-06-2005 à 00:26:17
n°1113469
nargoroth
Posté le 09-06-2005 à 00:47:14  profilanswer
 

masklinn a écrit :

la regex d'entrée est incorrecte de toute façon [:petrus75]
 
enfin, sauf si tu veux que ça puisse matcher

<||||>


[:petrus75]
 
J'ai déjà dit que je supportais pas les mecs qui bricolaient le code sans rien y comprendre? [:petrus75]
 


 
[b|B][o|O][d|D][y|Y] match tous les formatages de body et non pas |||, cette partie marche très bien merci.
C'est quoi ton problème? Tu profites des forums pour te la jouer parceque tu trouves pas de meuf? Pfff je ne sais même pas pourquoi je te répond, dois-je comprendre que ce forum est peuplé de gars comme toi?
 
 
 
Sinon pour les autres, merci beaucoup je ne connais pas les DOM, je vais étudier ça et tester le code de afbilou également (peut-être plus rapide que de me mettre aux DOM).

n°1113474
afbilou
pouet your life
Posté le 09-06-2005 à 00:50:33  profilanswer
 

nargoroth a écrit :

[b|B][o|O][d|D][y|Y] match tous les formatages de body et non pas |||


Bah si ca macthe ||| aussi :p
 

n°1113478
afbilou
pouet your life
Posté le 09-06-2005 à 00:52:53  profilanswer
 

ce que tu voulais faire c'est : "(b|B)(o|O)"
mais il vaut mieux faire : "[bB][oO]"
et il faut faire : "bo" avec eregi (insensible a la casse)
 
le must etant d'utiliser les expression reguliere PCRE (Perl) : http://www.lumadis.be/regex/tuto_pcre.php

n°1113479
masklinn
í dag viðrar vel til loftárása
Posté le 09-06-2005 à 00:54:27  profilanswer
 

nargoroth a écrit :

[b|B][o|O][d|D][y|Y] match tous les formatages de body et non pas |||, cette partie marche très bien merci.


Mon cul oui [:petrus75]
 
Fais le test, [b|B][o|O][d|D][y|Y] matche sur ||||, c'est pas ma faute si tu ne comprends pas la construction des regex [:petrus75]

Citation :

C'est quoi ton problème?


Si je répond que c'est toi, tu t'en vas? [:petrus75]

Citation :

Tu profites des forums pour te la jouer parceque tu trouves pas de meuf?


Non, c'est parce que je trouve pas de mec [:petrus75]
Pourquoi faut-il toujours qu'on assume que les gens sont hétérosexuels quand on tente de les insulter? [:petrus75]

Citation :

Pfff je ne sais même pas pourquoi je te répond, dois-je comprendre que ce forum est peuplé de gars comme toi?


Nope, je les ai tous jetés dehors, ils étaient insupportables [:petrus75]

afbilou a écrit :

le must etant d'utiliser les expression reguliere PCRE (Perl) : http://www.lumadis.be/regex/tuto_pcre.php


Je savais pas qu'il était possible d'utiliser des vraies regex en PHP, merci afbilou [:uriel]


Message édité par masklinn le 09-06-2005 à 00:56:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1113485
nargoroth
Posté le 09-06-2005 à 01:11:14  profilanswer
 

Ok merci Afbilou, je vois l'erreur autant pour moi.
 
Cool Masklinn t'as l'air plus gentil que dans ton premier message.  
"Non, c'est parce que je trouve pas de mec  
Pourquoi faut-il toujours qu'on assume que les gens sont hétérosexuels quand on tente de les insulter?" Je kiff'  
Désolé d'être sorti du sujet, j'ai du taff a+

mood
Publicité
Posté le 09-06-2005 à 01:11:14  profilanswer
 

n°1113510
nargoroth
Posté le 09-06-2005 à 02:11:33  profilanswer
 

Nickel ton code, ça marche parfaitement.
Merci encore.


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

  Problème pour ajouter du texte après <body.> avec ereg_replace[RESOLU]

 

Sujets relatifs
G un probleme aidez moi svp...[PHP] Tester si une valeur existe dans un tableau [RESOLU]
probleme avec ASCIiProbleme On error goto
Word-VB Problème avec des modèles de documentproblème super space de POST
Jtable JscrollPane et ajouter rafraichir un JtalbeProbleme mail en php
probleme moteur de recherche php[resolu]comment empecher les utilisateurs de changer de feuil?
Plus de sujets relatifs à : Problème pour ajouter du texte après <body.> avec ereg_replace[RESOLU]


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