Le remplacement de caractère…

Surfez léger... 28 février 2006

PHP est sûrement un des outils les plus performants actuellement sur Internet (et c’est pour ça qu’il est tant utilisé)…

Il se révèle être très simple d’utilisation lorsque l’on a besoin de remplacer des caractères par des images (exemple : remplacer e par e.gif) afin, pourquoi pas, de faire de jolis titres ou d’enrober un peu le design d’un site…

D’un premier abord, on pourrait penser que la fonction qui gère cet évènement se deploie sur cinquante lignes mais il n’en est rien. Même si PHP permet d’arriver à un même résultat par plusieurs chemins (et ça c’est une preuve de dynamisme!), il est surtout intéressant de s’attarder sur un moyen simple et accessible à tous…

Nous aurons donc besoin d’un texte (qui sera la valeur d’une variable) :

$texte = 'Velkan';

Notez qu’ici la variable est définie manuellement mais il aurait très bien pu s’agir du résultat d’une requête…

Il nous faudra ensuite une simple fonction :

$n = strlen($texte);

for ($i = 0; $i < $n; $i++)
{
echo '<img src="'.$texte{$i}.'.gif" />';
}

Ici on compte le nombre de caractères (nombre d’octets) de la chaîne (en l’occurence du texte) avec la fonction strlen(); et on obtient la variable $n$i est, dans le cas présent, une variable qui va s’incrémenter à chaque fois qu’un caractère sera remplacé. Cela jusqu’à ce que $i = $n. Elle permet en fait de passer d’un caractère à celui qui le suit.

Il ne vous reste plus qu’à créer une image par caractère. Attention tout de même ; avec cette méthode, le script appellera une image qui porte exactement le même nom que la valeur du caractère. C’est-à-dire que pour un H sera appelée H.gif alors que pour un h sera appelée h.gif… Il existe néanmoins des fonctions qui permettent de gérer ces situations…

Si vous vous sentez le courage de créer l’alphabet en minuscules et en majuscules, sachez que Windows considère A.gif et a.gif comme un seul et unique fichier. Heureusement qu’avec un serveur sous Apache, ce problème ne se reproduit pas! Il en sera de même pour les fichiers nommés .gif ([Espace].gif) que Windows ne gère pas. Prévoyez donc une heure pour renommer tous vos fichiers images via votre logiciel FTP.

Moralité, le plus long sera la création des images. Mais le résultat est tellement pratique!

7 commentaires

  1. Jabberwock dit :

    Php n’y est pas pour grand chose la dedans…
    Parce que meme en html pur tu aurais deja pu la faire, ok c’est long.
    Php permet par contre de rendre dynamique tout cela pour ne pas recoder chaque nom.
    Mais il est fait pour ça non ?

  2. Jabberwock dit :

    De la meme manière on peut faire (p-e que tu l as deja fait) pour les 4 photos un truc du style :

    $n=4 ‘nombre d’images
    for ( $i = 0 ; $i ” aux extrémités pour créer la balise img)
    }

  3. Aurélien dit :

    Non pour les images, ça prend le nom du perso, ça le transforme en minuscules et ça rajoute 1, 2, 3 et 4 avant le .jpg…

    J’allais pas me compliquer la vie^^

    Puis le faire en Html, il n’y a pas trop d’intérêt… 🙂

  4. BlueMind dit :

    Je comprends rien à votre chinois :mrgreen:

  5. Jabberwock dit :

    Je suis d’accord qu ‘n html sa sert à rien, mais l’esprit de cette astuce était déjà faisable 🙂

  6. Aurélien dit :

    Ben oui:wink:

    Php apporte juste le côté « le script bosse et moi je regarde »:mrgreen:

  7. x@v dit :

    l’astuce c’est de faire une fonction, mais dans le cadre d’un projet les images sont nommés par l’utilisateur suite à un upload et à partir d’un backoffice. Et dans ce cas il faut toujours renommés les images pour éviter d’avoir des nom accentués. Le front office est donc plus adapter que le php dans ce cadre et donc l’utilisation de js.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *