Chiffres en lettres

Salut la compagnie !

Voilà, j'essaye de bricoler avec un bout de code récupéré sur l'interweb une modif permettant de convertir les chiffres des commentaires en jolis nombre. Je vous montre où j'en suis :

Dans le fichier class/plx/show.php
Juste après <?php
function int2str($nb){
	if ($nb<0) return 'moins '.int2str(-$nb);
	if ($nb<17){
		switch ($nb){
			case 0: return 'zero';
			case 1: return 'un';
			case 2: return 'deux';
			case 3: return 'trois';
			case 4: return 'quatre';
			case 5: return 'cinq';
			case 6: return 'six';
			case 7: return 'sept';
			case 8: return 'huit';
			case 9: return 'neuf';
			case 10: return 'dix';
			case 11: return 'onze';
			case 12: return 'douze';
			case 13: return 'treize';
			case 14: return 'quatorze';
			case 15: return 'quinze';
			case 16: return 'seize';
		}
	} else if ($nb<20){
		return 'dix-'.int2str($nb-10);
	} else if ($nb<100){
		if ($nb%10==0){
			switch ($nb){
				case 20: return 'vingt';
				case 30: return 'trente';
				case 40: return 'quarante';
				case 50: return 'cinquante';
				case 60: return 'soixante';
				case 70: return 'soixante-dix';
				case 80: return 'quatre-vingt';
				case 90: return 'quatre-vingt-dix';
			}
		} else if ($nb<70){
			return int2str($nb-$nb%10).' '.int2str($nb%10);
		} else if ($nb<80){
			return int2str(60).' '.int2str($nb%20);
		} else{
			return int2str(80).' '.int2str($nb%20);
		}
	} else if ($nb==100){
		return 'cent';
	} else if ($nb<200){
		return int2str(100).' '.int2str($nb%100);
	} else if ($nb<1000){
		return int2str((int)($nb/100)).' '.int2str(100).' '.int2str($nb%100);
	} else if ($nb==1000){
		return 'mille';
	} else if ($nb<2000){
		return int2str(1000).' '.int2str($nb%1000).' ';
	} else if ($nb<1000000){
		return int2str((int)($nb/1000)).' '.int2str(1000).' '.int2str($nb%1000);
	}  
}
Et juste avant « $txt = str_replace('#nb',$nb,$format); »
int2str($nb);
Bon je suis conscient que ce n'est pas très casher, mais n'ayant pas touché de code depuis des années… Au moins je n'obtiens pas de Fatal Error, mais il ne se passe rien sur la liste des articles, le chiffre reste. Une idée ?

Merci !

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    $txt = str_replace('#nb',int2str($nb),$format);
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • et si dans un commentaire, je mets 1.000 (pour mille) ou à l'anglaise (1,000) ou avec des espaces 1 000 ?
  • AlbaAlba Member
    Merci !

    > basketref, ça ne change que le décompte des commentaires en bas de chaque billet !
  • Aaah, ok ;-) merci pour l'info
Connectez-vous ou Inscrivez-vous pour répondre.