Bonsoir,
Je bloque sur un problème. En partie parce que je n'ai jamais trop pratiqué les regex... et ça me parais assez compliqué.
Voilà tout dabord quelques explications. Mon but est de rechercher dans un doc HTML des balises spéciales ayant la forme %%TOTO%% par exemple.
Et de les remplacer par l'exécution ou plutôt le résultat d'une fonction.
Exemple, je recherche ici la balise %%TOTO%%, et je la remplace par l'appel d'une fonction :
$recherche[5] = '%%TOTO%%';
$remplacement[5] = $resultat = AfficherChose();
$html = str_replace( $recherche, $remplacement, $html );
Jusque là pas trop de problème...
La ou je bloque c'est dans la cas ou j'ai besoin de passer un paramètre à la fonction AfficherChose. Ce paramètre dois venir évidement de la balise. La balise aura donc par exemple la forme suivante : %%TOTO"parametre"%%
Donc la logique est d'isoler le paramètre entre guillemet de la balise pour pouvoir faire : AfficherChose( $valeur )
J'ai donc pondu un code franchement
horrible et long :
// $html = "%%TOTO"parametre"%%";
// On cherche les "" et leur contenu dans la chaine %%TOTO%%
eregi( '%%TOTO"(.*)"%%', $html, $resultat );
$valeur = $resultat[0];
// On isole le parametre
eregi( '"(.*)"', $valeur, $resultat );
$valeur = $resultat[0];
$length = strlen( $valeur ) - 2;
// On enlèves le premier et le dernier caractères (")
$valeur = substr( $valeur, 1, $length );
// $valeur est donc egal à : parametre
Déjà je sais bien qu'eregi n'est pas conseillé, mais sans parler de ça c'est un peu lourd comme code non ?
Si vous avez une autre piste ( plus légère)...
