Hello Perline,
P> Et on peut aussi mettre directement des liens (url fixes) dans les fonctions ?
P> De manière que l'image soit cliquable ?
P> Merci
Oui. Ta fonction devient ainsi:
<?
function titre_etoile($titre) {
$titre = ereg_replace("\*", "<a href='http://monsite.com'><img
src='1etoile.gif' alt='*'></a>", $titre);
return $titre;
}
?>
En fait je vais t'expliquer le fonctionnement de la fonction
ereg_replace de php:
$titre = ereg_replace("1er","2ème","3ème");
Ou "1er" est le texte à chercher et à remplacer dans le texte (en cas
de caractères spéciaux tels une étoile, des guillemets, etc. mettre
"\" (antislash, sans les guillemets) devant.)
"2ème" est le texte qui remplacera le texte indiqué dans "1er", ça
peut être du code html, même remarque que pour "1er" pour les
caractères spéciaux.
"3ème" est le texte où chercher et remplacer "1er" et "2ème", ici
c'est la variable $titre.
Ainsi la fonction suivante:
ereg_replace("\*", "<a href='http://monsite.com'><img
src='1etoile.gif' alt='*'></a>", $titre);
Signifie:
Chercher et remplacer tous les "\*" (étoiles) par "<a
href='http://monsite.com'><img src='1etoile.gif' alt='*'></a>" dans le
titre (variable $titre).
Petite remarque, si tu veux remplacer les 4, 5 etc. étoiles, il faut
mettre le plus grand nombre de caractères identiques en haut et
procéder par ordre décroissant.
Explications: Si $titre vaut "Bonjour. ** deux
étoiles * une étoile." et que notre fichier mesfonctions.php3
contient:
<?
function titre_etoile($titre) {
$titre = ereg_replace("\*", "<a href='http://monsite.com'><img
src='1etoile.gif' alt='*'></a>", $titre);
$titre = ereg_replace("\*\*", "<a href='http://monsite.com'><img
src='2etoiles.gif' alt='**'></a>", $titre);
return $titre;
}
?>
Vous obtiendrez le résultat suivant:
"Bonjour. <a href='http://monsite.com'><img src='1etoile.gif'
alt='*'></a> <a href='http://monsite.com'><img src='1etoile.gif'
alt='*'></a> deux étoiles <a href='http://monsite.com'><img
src='1etoile.gif' alt='*'></a> une étoile."
Le script a reconnu vos deux étoiles comme séparées et donc il a créé
deux fois le code pour UNE étoile. Alors que si vous inversez vos deux
fonctions ereg_replace en mettant celle aux deux étoiles en premier
vous obtiendrez votre code pour les DEUX étoiles avec DEUX étoiles.
Vous pensez peut-être que ce n'est pas grave. Dans ce cas ce n'est pas
très dommageable. Mais quand vous programmez des trucs plus compliqués
pour mettre en page vos variables avec du gras ou de l'italique vous
aurez besoin de réfléchir sérieusement à l'ordre des fonctions.
Voilà, c'était le cours du jour.
à+
--
Best regards,
Dioxyde mailto:dioxyde@dioxyde.org