Discussion:
Rempalcer des caracteres par des images...
(trop ancien pour répondre)
Epicurien
2009-10-20 20:39:56 UTC
Permalink
Bonjour à tous,

Je cherche la solution la plus simple pour remplacer des caractères dans une
chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...

Comment dois-je m'y prendre ?

Merci d'avance pour votre aide...
Olivier Miakinen
2009-10-20 20:56:02 UTC
Permalink
Bonjour,
Post by Epicurien
Je cherche la solution la plus simple pour remplacer des caractères dans une
chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...
Comment dois-je m'y prendre ?
Par exemple :
$chaine = chunk_split($chaine, 1, '.gif ') . '.gif';

Ou bien :
$chaine = preg_replace('/./', '$0.gif ', $chaine);

Ou encore :
$chaine = implode('.gif ', str_split($chaine)) . '.gif';

Il y a sûrement plein d'autres façons de procéder.


P.-S. : str_replace('al', 'la', 'Rempalcer'); ;-)
--
Olivier Miakinen
Michael DENIS
2009-10-21 07:33:20 UTC
Permalink
Post by Epicurien
Je cherche la solution la plus simple pour remplacer des caractères dans une
chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...
Si j'ai bien compris la question,

*********************************
$chaine = "rrw";

for ($i = 1; $i <= strlen($chaine); $i++) {
$image = substr($chaine, $i-1, 1) . ".gif";
echo "image : $image <br />";
}
*********************************

devrait y répondre.
--
Michaël DENIS
Olivier Masson
2009-10-21 13:38:43 UTC
Permalink
Post by Michael DENIS
Post by Epicurien
Je cherche la solution la plus simple pour remplacer des caractères dans une
chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...
Si j'ai bien compris la question,
*********************************
$chaine = "rrw";
for ($i = 1; $i <= strlen($chaine); $i++) {
$image = substr($chaine, $i-1, 1) . ".gif";
echo "image : $image <br />";
}
*********************************
devrait y répondre.
Ça ne répond pas à la même question.

Je rappelle que $chaine[$i] renvoie le caractère en position i.
Michael DENIS
2009-10-21 17:40:46 UTC
Permalink
Post by Olivier Masson
Post by Epicurien
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...
Ça ne répond pas à la même question.
Si je ne me trompe pas dans l'analyse de la question, mon code y répond
bien. Epicurien pourra sans doute nous éclairer. Mais il est vrai qu'en
répondant un peu plus strictement et en utilisant votre remarque (je ne
me lasse pas d'apprendre :-)), on aurait plutôt :

*********************************
$chaine = 'rrw';
$image = '';

for ($i = 1; $i <= strlen($chaine); $i++) {
$image .= $chaine[$i-1] . '.gif ';
}

echo $image;
*********************************

Je pars bien d'une chaîne "rrw" pour obtenir une autre chaîne "r.gif
r.gif w.gif " (avec un espace en fin de chaîne qui ne serait pas très
compliqué à gérer :-)).
--
Michaël DENIS
Pierre Maurette
2009-10-22 10:07:53 UTC
Permalink
Olivier Masson, le 21/10/2009 a écrit :

[...]
Post by Olivier Masson
Ça ne répond pas à la même question.
C'est exact. Mais je ne suis pas sûr que la question soit très bien
posée. J'intuite que le but est d'afficher une chaîne à l'aide d'un
alphabet graphique (glyphes ?), alphabet normal, langage des pavillons,
que sais-je encore.

Je ne sais pas si on peut mettre les images à la suite, il me semble
préférable de prévoir une certaine souplesse pour affiner la mise en
page. A la base on pourrait avoir:

echo $prolog;
for ($i = 0; $i < $len; $i++) {
$car = $chaine {$i} == ' ' ? 'space' : $chaine {$i} ;
echo $before.'<img src="'.$car.'.gif" alt="'.$car.'" />'.$after;
}
echo $epilog;

Ensuite on détermine si on utilise un tableau, des span, ou autre. Un
exemple fonctionnel, à partir d'un tableau:

$chaine = "Pierre Maurette";
$len = strlen($chaine);
/* Calculs*/
$w = '800';
$before = " <td>";
$after = "</td>\n";
$prolog = '<table width="'.$w.'" border="0" cellspacing="0"
cellpadding="0">'."\n".' <tr>'."\n";
$epilog = ' </tr>'."\n".'</table>';

echo $prolog;
for ($i = 0; $i < $len; $i++) {
$car = $chaine {$i} == ' ' ? 'space' : $chaine {$i} ;
echo $before.'<img src="'.$car.'.gif" alt="'.$car.'" />'.$after;
}
echo $epilog;

C'est sans doute mauvais, je ne connais sans doute pas le quart de Php,
que pourtant j'utilise :-(
En plus je mets en page le code HTML, ce n'est peut-être pas une bonne
idée.
Il est relativement facile de dimensionner les images en fonction de
$len, voire de splitter en deux lignes.
--
Pierre Maurette
CrazyCat
2009-10-21 07:36:04 UTC
Permalink
Post by Epicurien
Je cherche la solution la plus simple pour remplacer des caractères dans une
chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie
en "r.gif r.gif w.gif"...
Je suis un peu étonné par ton remplacement, j'aurais plutôt vu:
<img src="r.gif" alt="r" />

Et donc
$letters = str_split($chaine);
$imgs = array();
foreach($letters as $k => $v) {
if ($v=='') $v = 'blank';
$imgs[] = '<img src="'.$v.'.gif" alt="'.$v.'" />';
}
$chain = implode('', $imgs);
--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Epicurien
2009-10-24 19:12:31 UTC
Permalink
Bon je me suis débrouillé pour éviter les usines à gaz...

Un simple FOR fonctionne très bien... Pas la peine de faire des
conplications... ;)

for ($i=0; $i<strlen($chaine); $i++)
{
echo "<img src='".$chaine[$i].".gif' />";
}
Pierre Maurette
2009-10-24 20:19:04 UTC
Permalink
Post by Epicurien
Bon je me suis débrouillé pour éviter les usines à gaz...
Un simple FOR fonctionne très bien... Pas la peine de faire des
conplications... ;)
for ($i=0; $i<strlen($chaine); $i++)
{
echo "<img src='".$chaine[$i].".gif' />";
}
Et surtout ne dites pas /Merci/.
--
Pierre Maurette
Epicurien
2009-10-25 19:54:08 UTC
Permalink
Post by Pierre Maurette
Et surtout ne dites pas /Merci/.
Merci à qui .? Je me suis débrouillé SEUL !!!

Et je viens faire part de mon code c'est déjà gentil je trouve...
Alors ce genre de réflexion me semble fort déplacée...
Olivier Miakinen
2009-10-25 20:19:06 UTC
Permalink
Post by Epicurien
Post by Pierre Maurette
Et surtout ne dites pas /Merci/.
Merci à qui .? Je me suis débrouillé SEUL !!!
Ah ? Parce que tu n'as pas vu que la proposition de Michael Denis était
quasiment identique à la tienne ? Et même si ça n'avait pas été le cas,
le fait que tu aies choisi une solution éventuellement différente de
toutes celles qui t'ont été proposées ne change rien au fait qu'on a
pris du temps gratuitement pour les écrire, ces propositions.
Post by Epicurien
Et je viens faire part de mon code c'est déjà gentil je trouve...
Alors ce genre de réflexion me semble fort déplacée...
Pour ma part c'est ta réponse qui me semble déplacée, bien plus même que
le fait de ne pas avoir dit merci.
--
Olivier Miakinen
Olivier Masson
2009-10-26 15:32:28 UTC
Permalink
Post by Epicurien
Post by Pierre Maurette
Et surtout ne dites pas /Merci/.
Merci à qui .? Je me suis débrouillé SEUL !!!
Et je viens faire part de mon code c'est déjà gentil je trouve...
Alors ce genre de réflexion me semble fort déplacée...
Ah fallait l'oser celle-là ! Ça motive les gens qui aident !
Et en plus il nous dit que c'est lui le symap dans l'histoire...
Alex Vaure
2009-10-26 18:09:38 UTC
Permalink
Post by Olivier Masson
Post by Epicurien
Post by Pierre Maurette
Et surtout ne dites pas /Merci/.
Merci à qui .? Je me suis débrouillé SEUL !!!
Et je viens faire part de mon code c'est déjà gentil je trouve...
Alors ce genre de réflexion me semble fort déplacée...
Ah fallait l'oser celle-là ! Ça motive les gens qui aident !
Et en plus il nous dit que c'est lui le symap dans l'histoire...
Ouaip, moi aussi je suis tombé de ma chaise...
Faut laisser pisser, surtout que c'est particulièrement un groupe ou
l'aide apportée et rapide et de qualité, enfin, je trouve :-)
--
Alex
Vous avez beau dire, y'a pas seulement que de la pomme, y'a aut'chose.
Ça serait pas dès fois de la betterave, hein ?
Continuer la lecture sur narkive:
Loading...