Preg_replace et fonction
Zeos
Messages postés
3
Statut
Membre
-
Zeos Messages postés 3 Statut Membre -
Zeos Messages postés 3 Statut Membre -
Bonjour,j'ai crée un fonction tag qui crée développe mes tag a partir d'une chaine de caractère (en php)
le problème est que je fait des 'preg_replace' et comme sortit je l'attribut a une fonction , la fonction ne reçois pas la sortit du 'preg_replace' mes sa variable '$1 et $2' .
merci d'avance .
PS : J'utilise PHP 5.
le problème est que je fait des 'preg_replace' et comme sortit je l'attribut a une fonction , la fonction ne reçois pas la sortit du 'preg_replace' mes sa variable '$1 et $2' .
<php
function typographie($lettre,$size)
{ ........ }
function tag($chaine)
{
$chaine = Preg_replace('#\{tag:typo\((.+)\|(.)\)\}#isU', typographie("$2","$1"), $chaine);
return $chaine;
}
$tmp_test = 'mon {tag:typo(15|C)}hat est beaux';
$tmp_test = tag($tmp_test);
echo $tmp_test;
// ce qui devrai afficher "mon C('c' typographique)hat est beaux
?>
merci d'avance .
PS : J'utilise PHP 5.
A voir également:
- Preg_replace et fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
2 réponses
Non, ça ne devrait aps t'afficher ça. Tu devrais plutot utiliser preg_match_all pour ce que tu veux faire. Preg_replace remplace mais ne supprime pas ce qui ne t'arrange pas.
Pour mieux comprendre, teste juste un var_dump($chaine = Preg_replace('#\{tag:typo\((.+)\|(.)\)\}#isU', "$2","$1", $chaine);
Pour mieux comprendre, teste juste un var_dump($chaine = Preg_replace('#\{tag:typo\((.+)\|(.)\)\}#isU', "$2","$1", $chaine);
Je viens de reformulée mon script pour que cela sois plus compréhensible :
Ce qui s'affiche :
Array
(
[0] => $2
[1] => $1
)
<?php
function test()
{
echo '<pre>';
print_r(func_get_args());
echo '</pre>';
}
function tag($chaine,$ACT)
{
if $chaine = preg_replace('#\{tag:typo\((.+)\|(.)\)\}#isU', test("$2","$1"), $chaine); // ex :{tag:typo(15|H)}
echo tag('{tag:typo(15|H)}');
?>
Ce qui s'affiche :
Array
(
[0] => $2
[1] => $1
)