begin process at 2012 05 31 12:19:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

[PROBLEME] boucle et preg_replace


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[PROBLEME] boucle et preg_replace

lundi 7 décembre 2009 à 17:08:50 | [PROBLEME] boucle et preg_replace

azumi13

Bonjour à tous!

Aprés une journée de galère, je viens vous demander un coup de mains car je commence a peter un cable...

Je suis en train de créer une sorte de mini-cms, j'utilise la fonction preg_replace, pour pouvoir afficher mes menus.
La boucle se fait bien, mais le souci c'est que je n'arrive pas a utiliser de fonctions dans ma fonction.
Pour faire plus clair, voici le code de test:
Code PHP :
$str = '
<CW_MENUS>
	<div style="border: 1px solid #3b3b3b; margin-top: 20px; width: 100px;">
		<a href="#MENU_LIEN" title="#MENU_TITLE">#MENU_NOM</a>
	</div>
</CW_MENUS>
';

$chaine = preg_replace('#<CW_MENUS>(.+)</CW_MENUS>#sU',menu('$1'),$str);	
echo $chaine;

function menu($str){
	$retour = "";
	
	$sql = "SELECT * FROM cw_menus WHERE visible='1' ORDER BY ordre ASC";
	$req = mysql_query($sql);
	
	while ($data = mysql_fetch_assoc($req)){
		$temp = str_replace('#MENU_NOM',$data['nom'],$str);
		$temp = str_replace('#MENU_LIEN','http://www.aaaa.fr/'.$data['page_id'].'.php',$temp);
		$temp = str_replace('#MENU_TITLE',$data['title'],$temp);
		$retour .= $temp;
	}
	
	return $retour;
}


la fonction str_replace, n'est pas prise en compte et je ne comprend pas pourquoi.

Cordialement.
lundi 7 décembre 2009 à 18:44:58 | Re : [PROBLEME] boucle et preg_replace

neigedhiver

Réponse acceptée !

Salut,

Tu n'utilises pas la bonne fonction. Jette plutôt un oeil du côté de preg_replace_callback()

Rappel : la fonction preg_replace() admet comme paramètre de remplacement une chaîne ou un tableau de chaînes, contenant éventuellement une référence \\n ou $n.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
lundi 7 décembre 2009 à 18:58:08 | Re : [PROBLEME] boucle et preg_replace

kohntark

Membre Club
Réponse acceptée !
Salut Azumi,

la fonction str_replace, n'est pas prise en compte


Qu'est ce qui te laisse penser cela ?
La première chose à faire est de mettre en place des echo, print_r et autres var_dump afin de cibler le pb.
En faisant un "echo $str;" au tout début de ta fonction, tu t'apercevrais que $str n'a pas le résultat escompté, et pour cause, preg_replace n'accepte pas de fonction. Pour cela il y a preg_replace_callback()

Code PHP :
<?php
$chaine = preg_replace_callback('#<CW_MENUS>(.+)</CW_MENUS>#sU', "menu",$str);

function menu($str){
  print_r($str); // $str[1] étant la string que tu attends

  // je te laisse le soin de continuer ...
}
?>



Cordialement,

Kohntark -

lundi 7 décembre 2009 à 18:59:16 | Re : [PROBLEME] boucle et preg_replace

kohntark

Membre Club

tu ne pouvais pas rester en week end plutôt que de me griller Neige ?




Kohntark -

lundi 7 décembre 2009 à 19:03:26 | Re : [PROBLEME] boucle et preg_replace

neigedhiver

J'suis décalqué, 2 jours de déménagement du frangin, + 2x 6h30 de trajet...
Mais réveille toi, t'as répondu 14 minutes plus tard... rhalalalala...

Bon mais on s'en fout, hein, on fait pas la course...
Mais quand même... des fois, j'ai l'impression que tu me suis et que tu réponds justement là où je réponds...
Arf.

Cela dit, ta réponse est plus complète que la mienne, moi, j'ai eu grave la flemme...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
lundi 7 décembre 2009 à 19:16:52 | Re : [PROBLEME] boucle et preg_replace

kohntark

Membre Club

Mais quand même... des fois, j'ai l'impression que tu me suis et que tu réponds justement là où je réponds...
Arf.


on pourrait le croire c'est vrai, mais en fait c'est juste ma lenteur, et le fait que je ne réactualise pas toujours le thread avant d'y répondre.

promis je te gratte à la prochaine


Cordialement,


Kohntark -

lundi 7 décembre 2009 à 20:45:48 | Re : [PROBLEME] boucle et preg_replace

azumi13

mdr merci les gars ça marche impecable
lundi 7 décembre 2009 à 21:27:14 | Re : [PROBLEME] boucle et preg_replace

kohntark

Membre Club
Je t'en pris, n'oublie pas de valider MA REPONSE (et accessoirement celle de Neige ) afin de clore le sujet et que ça puisse profiter à tout le monde.


j'te l'avais dit Neige : "j'te gratte à la prochaine " !!!


Bonne soirée,


Kohntark -

lundi 7 décembre 2009 à 21:34:54 | Re : [PROBLEME] boucle et preg_replace

neigedhiver

Mouarf, tu m'fais marrer... Je cherche pas la gloire, moi au moins... hum... hein, bon...


P.S. pour azumi : n'oublie pas de valider ma réponse, et si le coeur t'en dis, celle de Kohntark, mais bon, il a pas besoin de ça...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : menu, replace, temp, str, preg


Répondre à ce message

Sujets en rapport avec ce message

temp d'execution et preg_replace_callback [ par MisterV ] Je m'excuse de poster ce message, mais ayant fait une erreur alors que je postais mon message, il est arrivé dans la rubrique hebergeurs.Il me semble aide pour débutant : include php [ par klem39 ] salut tout le monde,ayant déja un site web, qui est franchement pouri, je voudrai le mettre a jours.en effet dans mon site j'utilise des frames pour s Gros problème BDD [ par kodiask ] voila mon code il consiste a remplacer les lettres par une image...while($data = mysql_fetch_array($req)) { $data['nom'] =str_replace('a','',$da preg_replace recursif !! [ par massiliaman ] Salut je voudrais inserer un espace entre groupe de lettre et groupe de chiffre avec preg_replace mais cela de facon recurssive. Je m'explique j'ai en lister un repertoire pour créé un str replace avec tout les fichier [ par ztec ] j'ai un repertoire ou je veut metre des smiley. j'en ai telement, que kj'ai pas envi des les rentrer un par un. les smiley les plus utiliser on ete de Help : (str_replace) et (split ou explode) ne marchent pas ! ? [ par slmnsnts ] Salut tt le monde !G ajouté une page de recherche dans mon forum et ca marche tres bien ... le seul prob C lorsque qu'on cherche des mots avec plusieu preg_replace pour chaine de code php [ par JoJo738 ] Simplification de nombreux str_replace [ par ImmortalPC ] Salut, je sais qu'il esiste une astuce pour éviter les nombreux str_replace avec array(). Quelqu'un la connaît il ou quelque chose pour simplifier le Récupérer des images puis Upload [ par radyonne ] Bonjour ! voila j'aimerais savoir comment faire pour uploader des images à partir d'un lien et du contenu d'un .txt , qui sont dans un dossier sur un exp reg [ par coucou747 ] Salut je fais un forum OO en php4 et j'ai besoin d'un peu d'aide pour la fonction qui transforme une variable avant de l'enregistrer : celle qui gère


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales