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

  FORUM HardWare.fr
  Programmation
  PHP

  [resolu] Probleme de PREG_REPLACE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] Probleme de PREG_REPLACE

n°661935
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 12:44:28  profilanswer
 

salut a tous
je voudrais recuperer un champ de table et le modifier avec un preg_replace.
donc je recupere le champ avec $rox['champ'], jusdque la pas de soucis.
 
c'est le preg_replace qui marche pas.
 
$row['champ'] = preg_replace("index.php?variable=(.*?)","variable-$1.htm",$row['champ']);
 
où est l'erreur ??


Message édité par sebnutt le 03-03-2004 à 14:05:36
mood
Publicité
Posté le 03-03-2004 à 12:44:28  profilanswer
 

n°661938
kfman
Credo quia absurdum
Posté le 03-03-2004 à 12:52:38  profilanswer
 

En gros tu veux faire de l'url rewriting ?
Peux-tu mettre un exemple d'url à modifier et modifée ?

n°661940
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 12:55:40  profilanswer
 

c'est pas tout a fait de l'URL rewriting.
je veux modifier la forme d'une URL, contenue dans l'enregistrement d'une table.
 
mon enregistrement contient par exemple  
 
index.php?var=4 et la transformer dans le document renvoyé par le serveur web en var-4.html

n°661942
kfman
Credo quia absurdum
Posté le 03-03-2004 à 12:56:17  profilanswer
 

Essaie ça:
 
$row['champ'] = preg_replace("index\.php\?variable=(.*?)","variable-\$1.htm",$row['champ']);


Message édité par kfman le 03-03-2004 à 12:57:31
n°661946
Tentacle
Posté le 03-03-2004 à 12:56:50  profilanswer
 

Je pense qu'il faudrait que tu lises plus en profondeur la documentation PHP : http://fr2.php.net/manual/fr/ref.pcre.php
En fait en gros, il manque les / en début et fin d'expression régulière, le . et ? dans index.php?variable ne sont pas échappés. Le $ de $1 dans la chaîne de remplacement doit être aussi échappé.

n°661947
kfman
Credo quia absurdum
Posté le 03-03-2004 à 12:59:25  profilanswer
 

Suite à Tentacle:
 
$row['champ'] = preg_replace("/index\.php\?variable=(.*?)/","variable-\$1.htm",$row['champ']);
 

n°661953
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:06:28  profilanswer
 

aucune des 2 solutions ne fonctionne, je me retrouve avec un truc du genre
 
var- .html4     le 4 n'est pas au bon endroit

n°661955
Tentacle
Posté le 03-03-2004 à 13:06:58  profilanswer
 

En fait pas besoin d'échapper le $ [:aloy]  
 

n°661958
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:11:41  profilanswer
 

toujours pas.
dsl
 
je dois etre une buse, mais ca marche pas !!
rahhhhh

n°661959
Tentacle
Posté le 03-03-2004 à 13:12:39  profilanswer
 

Hum ... lol enlève moi ce ? dans .*? car il va prendre le moins possible donc il ne prendra pas le nombre et donc il ne serra pas remplacé. Alors soit tu mets (.*) soit tu mets un $ avant le / à la fin.


Message édité par Tentacle le 03-03-2004 à 13:13:19
mood
Publicité
Posté le 03-03-2004 à 13:12:39  profilanswer
 

n°661965
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:16:45  profilanswer
 

en mettant (.*) j'ai recupere ca  
 
var-4
mais il manque le .html :)
desl je fais tous mes efforts...

n°661973
Tentacle
Posté le 03-03-2004 à 13:19:12  profilanswer
 

ca marche chez moi ... tu peux mettre la ligne de code ?

n°661974
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:19:57  profilanswer
 

$row['body'] = preg_replace("/critic\.php\?filmid=(.*)/","critique-$1.html",$row['body']);

n°662012
Tentacle
Posté le 03-03-2004 à 13:37:23  profilanswer
 

Bah ça marche aussi :
 
echo  preg_replace("/critic\.php\?filmid=(.*)/","critique-$1.html","critic.php?filmid=4" );
 
renvoie critique-4.html
 

n°662040
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:55:38  profilanswer
 

en effet, ca marche, mais le prob c'est que je ne sais pas ou se trouve le texte en question dans mon enregistrement. il peut etre situe n'iporte ou.
 
je ne peux donc pas utiliser le echo mais plutot
$row['body'] = ....

n°662044
kfman
Credo quia absurdum
Posté le 03-03-2004 à 13:57:06  profilanswer
 

Met un exemple d'enregistrement stp.

n°662047
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 13:59:10  profilanswer
 

ben un enregistrement peut contenir
 

Code :
  1. je vous propose de lire la critique suivante  critic.php?filmid=12


 
et je veux que le serveur PHP retourne  
 
je vous propose de lire la critique critique-12.html
 
 
voila, j'espere que je suis clair.
 

n°662057
kfman
Credo quia absurdum
Posté le 03-03-2004 à 14:01:51  profilanswer
 

Essaye:
 
$row['body'] = preg_replace("/critic\.php\?filmid=([0-9]+)/","critique-$1.html",$row['body']);  

n°662059
Tentacle
Posté le 03-03-2004 à 14:04:35  profilanswer
 

sebnutt a écrit :

en effet, ca marche, mais le prob c'est que je ne sais pas ou se trouve le texte en question dans mon enregistrement. il peut etre situe n'iporte ou.
 
je ne peux donc pas utiliser le echo mais plutot
$row['body'] = ....


 
le echo était là pour le test ... mais si echo affiche le bon résultat, je vois pas pourquoi ça changerait avec $row['body'] =

n°662060
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 14:05:10  profilanswer
 

YEESSSSSSS ca marche !!!!!
 
un supergrand merci a toi !
et bravo !

n°662064
kfman
Credo quia absurdum
Posté le 03-03-2004 à 14:06:17  profilanswer
 

T'as fait un echo $row['body'];
 
Ou alors t'as des vieux caractères slashés automatiquement par mysql ou php. Si c'est le cas stripslashes($row['body']).


Message édité par kfman le 03-03-2004 à 14:09:14
n°662067
kfman
Credo quia absurdum
Posté le 03-03-2004 à 14:06:58  profilanswer
 

sebnutt a écrit :

YEESSSSSSS ca marche !!!!!
 
un supergrand merci a toi !
et bravo !


 
100? :o

n°662078
sebnutt
Un petit rien du tout
Posté le 03-03-2004 à 14:14:19  profilanswer
 

j'avais pas pensé à faire ça, alors que c'est exactement la foirmule que j'utilise dans mon htacces d'URL rewriting, chuis trop nul..

mood
Publicité
Posté le   profilanswer
 


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

  [resolu] Probleme de PREG_REPLACE

 

Sujets relatifs
Librairie IMAP, problème avec imap_setflag_full[Résolu] java.sun.com down depuis hier
Probleme simple , mais je trouve pas ![Java] [applet] Big problème sociologique
Problème de linkage sur une appli C sous .NETmaven et probleme de telechargement
problème avec apostrophesprobleme lors de telechargement
Gros problème pour réaliser un programme[JS] [Résolu] Compatibilité Mozilla
Plus de sujets relatifs à : [resolu] Probleme de PREG_REPLACE


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