Une variable est vide que dans un str_replace/preg_replace

Petit nouveau ! | 2 Messages

02 juil. 2007, 18:20

Bonjour à tous,

Je me confronte à un problème sur le BBCode de mon site.
J'utilise un foreach pour récupérer les valeurs d'un array.
Les valeurs en question me permettent de remplacer certaines choses sur la page.

Mon problème est le suivant :
Je peux faire un echo $val; tous s'affiche bien.
Mais dès que la variable $val est utilisé dans mon str_replace(j'ai tenté aussi avec le preg_replace), la variable est vide.


Voici le code:
foreach( $file_parser as $val )
	{
		echo $val;
                $texte = str_replace("preg_replace",
		"<span style='color:#009966;font-weight: bold'>".$val."</span>",$texte);
		echo $val;
	}
En fait, je remplace un mot(ici c'est preg_replace) par le contenu de $val mis en couleur.
voici le résultat de PHP:
preg_replace preg_replace Code PHP
();
Ont à donc
();
qui s'affiche au lieu d'avoir
preg_replace();
qui s'affiche.

Pourtant comme le montre ma citation, ont a bien un premier preg_replace qui s'affiche qui est le premier echo $val; et le second correspond au second echo $val;


C'est la première fois que cela m'arrive et je ne comprend pas pourquoi.

Merci d'avance à ceux qui pourront m'aider.

Mammouth du PHP | 693 Messages

02 juil. 2007, 18:54

Il manque des element pour pouvoir répondre. le code tel qu'il est affiche preg_replace preg_replace et c'est tout...

Petit nouveau ! | 2 Messages

03 juil. 2007, 00:10

Bonsoir,

Problème résolu, en fait quand je lis mon fichier pour le lister dans l'array $file_parser, la fonction fgets rajoute une ligne vide en lisant la ligne, il falait juste avant le fgets que je rajoute une vérification si ce qu'il a retourné est une nouvelle ligne vide ou non, si elle est vide, alors ont rajoute pas dans l'array.

Au final, au lieu de passer une fois supplémentaire ce qui enlevais le résultat attendu, il passe plus cette fois qui fallait pas(là suis crevé, si j'ai mal expliqué, je vous montrerais demain avec l'autre bout de code que mon frangin m'a corrigé en arrivant du boulot).

J'aurais par contre un second problème à soumettre, mais je le ferais demain et dans un nouveau topic(parce que sinon se sera HS lol).