Page 1 sur 1

Remplacer un chiffre par une image

Posté : 23 avr. 2013, 05:57
par rimie
Bonjour

J'ai une fonction qui doit remplacer un chiffre par une image, mais le resultat donne, est malforme:
<?php
function DateReplace ($ReplaceText, $width, $height)
{
	$Numbers=array(
        '0' => '<img src="clock_zero.png" align="absmiddle" width="'.$width.'" height="'.$height.'">',
		'1' => '<img src="clock_one.png" align="absmiddle" width="10" height="15">',
		'2' => '<img src="clock_two.png" align="absmiddle" width="10" height="15">',
		'3' => '<img src="clock_three.png" align="absmiddle" width="10" height="15">',
		'4' => '<img src="clock_four.png" align="absmiddle" width="10" height="15">',
		'5' => '<img src="clock_five.png" align="absmiddle" width="10" height="15">',
		'6' => '<img src="clock_six.png" align="absmiddle" width="10" height="15">',
		'7' => '<img src="clock_seven.png" align="absmiddle" width="10" height="15">',
		'8' => '<img src="clock_eight.png" align="absmiddle" width="10" height="15">',
		'9' => '<img src="clock_nine.png" align="absmiddle" width="10" height="15">',
	);

	$Date=str_replace(array_keys($Numbers), array_values($Numbers), $ReplaceText);

	return $Date;	
}

echo DateReplace (0, 10, 15);

?>
J'ai fait un essai sur le 0, ca remplace meme les valeurs de width et height au sen de la balise img

Merci pour votre aide

Re: Remplacer un chiffre par une image

Posté : 23 avr. 2013, 09:56
par Mazarini
str_replace boucle sur les remplacements à faire.

Lorsque tu l'exécutes pour la valeur 0, il commence par remplacer 0 par ton image, puis remplace 1 par son image et c'est la que commence les problèmes puisque 1 est présent dans height après le traitement de 0.

Il faut donc que tu traite tout les caractères 1 par 1 avec la fonction substr() par exemple.

Re: Remplacer un chiffre par une image

Posté : 24 avr. 2013, 08:42
par rimie
substr supprime des caractere suivant la position, comment puis je l'utiliser dans mon cas

Re: Remplacer un chiffre par une image

Posté : 24 avr. 2013, 09:41
par Mazarini
Tu fais une boucle sur les caractères de la chaine passée en paramètre et tu constitue une chaine avec les images.

Re: Remplacer un chiffre par une image

Posté : 24 avr. 2013, 09:52
par rimie
est ce qu'il facil d'utiliser preg_replace au lieu de str_replace

Re: Remplacer un chiffre par une image

Posté : 24 avr. 2013, 15:29
par Mazarini
Le problème, c'est qu"en faisant des remplacements, tu as le risque de remplacer aussi les chiffres qui sont dans la hauteur et la largeur de l'image.

Re: Remplacer un chiffre par une image

Posté : 24 avr. 2013, 15:44
par ctzwayna
Slt,
moi j'aurai fait comme ça 8-)

<?php
function DateReplace ($ReplaceText, $width, $height){
	$Numbers=array(
		'0' => 'clock_zero.png',
		'1' => 'clock_one.png',
		'2' => 'clock_two.png',
		'3' => 'clock_three.png',
		'4' => 'clock_four.png',
		'5' => 'clock_five.png',
		'6' => 'clock_six.png',
		'7' => 'clock_seven.png',
		'8' => 'clock_eight.png',
		'9' => 'clock_nine.png',
	);

	$Date='<img src="'.$Numbers[$ReplaceText].'" align="absmiddle" width="'.$width.'" height="'.$height.'">';
	return $Date;
}

echo DateReplace (0, 10, 15);

?>


Re: Remplacer un chiffre par une image

Posté : 26 avr. 2013, 03:12
par rimie
merci ctzwayna, le probleme si les tailles sont differentes :(