preg_replace : Failed evaluating code

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : preg_replace : Failed evaluating code

Re: preg_replace : Failed evaluating code

par popy » 03 nov. 2011, 15:35

Code : Tout sélectionner

$string= '[code]$aze[]
';
$string = preg_replace('#\[code\](.*)\[/code\]#iseU', 'bbcode_code(\'\\1\')', $string );[/code]

Re: preg_replace : Failed evaluating code

par macgawel » 03 nov. 2011, 12:48

Bonjour.

1. Comme le dit le message d'erreur, PHP attend une chaîne ou une variable ou un index d'un tableau numérique se trouvant dans une chaîne de caractères.
Là tu lui donnes un tableau, forcément il râle !

2. D'ailleurs, tu ne lui donnes pas un tableau en fait...
Tu lui donnes $aze[], qui ne veut rien dire (en tout cas pas comme ça). #-o

Je ne sais pas ce qu'il y a dans ton tableau, donc c'est difficile d'en dire plus.
Par exemple, si tu veux appliquer le preg_replace sur le 1er élément du tableau, il faut faire :
$string= '[code ]$aze[0][/code]';
$string = preg_replace('#\[code\](.*)\[/code\]#iseU', 'bbcode_code("\\1")', $string );

preg_replace : Failed evaluating code

par jonjojo007 » 31 oct. 2011, 17:17

Bonjour,

J'ai un soucis avec une fonction de traitement de bbcode => html

J'ai une ligne avec un preg_replace avec delimiter "e" (qui appel une fonction) qui pose soucis quand dans $string j'ai une variable avec un crochet.
Exemple :

Code : Tout sélectionner

$string= '[code]$aze[]
';
$string = preg_replace('#\[code\](.*)\[/code\]#iseU', 'bbcode_code("\\1")', $string );
[/code]
Me donne
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/test/www/test.php(7) : regexp code on line 1

Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: acode("$aze[]") in /home/test/www/test.php on line 7
Ce qu'il aime pas c'est bien sur qu'il y ait une variable $var[] avec des crochets. Sans crochets ça ne fait pas de problème. Pourquoi ? Comment résoudre proprement le problème ?

Merci.