Preg_replace_callback 3 ligne 2 erreurs par ligne...

Mammouth du PHP | 1668 Messages

25 juin 2008, 12:48

Bonjour à toutes et tous,

Voilà, je bosse sur des expression régulière et sur 3 lignes, j'ai 6 erreurs :
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_if', to be a valid callback in ***t\moteur.php on line 338

Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_elseif', to be a valid callback in ***t\moteur.php on line 339

Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_else', to be a valid callback in ***t\moteur.php on line 340

Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_if', to be a valid callback in ***t\moteur.php on line 338

Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_elseif', to be a valid callback in ***t\moteur.php on line 339

Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'compile_condition1_else', to be a valid callback in ***t\moteur.php on line 340
Voilà mes trois lignes en questions :
	if($contenu = preg_replace_callback('#<if cond(?:ition)?="([^"]+?)"(?:\s)?>(.+)?(</if>)?#i', 'compile_condition1_if', $contenu)) $i++;
			if($contenu = preg_replace_callback('#<elseif cond(?:ition)?="([^"]+?)"(?:\s)?>(.+)?(</if>)?#i', 'compile_condition1_elseif', $contenu)) $i++;
			if($contenu = preg_replace_callback('#<else>(.+)?(</else>)?#', 'compile_condition1_else', $compile)) $i++;
Je penses pas que ça vienne de mes fonctions, mais, j'aimerais, que lorsque les expressions fasses un remplacement, ça incrémente $i...

Comment faire ?

D'avance merci pour vos réponses...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphant du PHP | 185 Messages

25 juin 2008, 13:25

Tes fonctions compile_condition1_if(), compile_condition1_elseif() et compile_condition1_else() ne sont pas définies (n'existent pas quoi). =)

Mammouth du PHP | 1668 Messages

25 juin 2008, 14:18

Si, elles éxistent :
	private function compile_condition1_if($matches){
		}

	private function compile_condition1_elseif($matches){
	               }

	private function compile_condition1_else($matches){
                 	}
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 1353 Messages

25 juin 2008, 14:21

Je pense qu'il faut un return sur ces fonctions pour que cela fonctionne, quitte à mettre un return ""; pour voir si ca enlève l'erreur...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

ViPHP
ViPHP | 5924 Messages

25 juin 2008, 14:24

Ce ne sont pas des fonctions, ce sont des méthodes, privées qui plus est, tu ne pourras jamais les utiliser à partir de preg_replace_callback(), surtout si tu ne lui indiques pas l'objet.

Mammouth du PHP | 1668 Messages

25 juin 2008, 15:01

Bah comment tu veux que je lui indique :lol:

PS : je doit pas lui envoyé un array du type array($this, 'fonction') ? il me semble que j'ai vu ça quelque part, mais je ne savais pas à quoi ça correspondait...esce-bien ça ???
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphant du PHP | 185 Messages

25 juin 2008, 15:21

Oui, c'est complètement ça !

Mammouth du PHP | 1668 Messages

25 juin 2008, 15:26

Je suis un génie :D

Merci [Résolu]
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4039 Messages

26 juin 2008, 10:00

Je suis un génie :D
n'exagérons rien.. :roll:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 514 Messages

26 juin 2008, 10:04

Je suis un génie :D
On dirait moi,

mais sans le talent :twisted:
Ne jamais repousser à demain ce qu'on peut faire après demain ...

Mammouth du PHP | 1668 Messages

26 juin 2008, 10:06

mais sans le talent :twisted:
Ca part en flood,

Tu imagine si j'avais eu du talent en plus...j'aurais fait le C+++ :lol:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol