REMPLACER DES LETTRES EN IMAGES

Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
- - Dernière réponse : kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
- 16 sept. 2009 à 20:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50566-remplacer-des-lettres-en-images

kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21 -
Salut,

A mon avis ta fonction pourrait faire 2 fois moins de lignes (voire plus), et surtout être plus rapide.
str_split consomme "beaucoup" de ressources. Pour qq chaînes de longueurs raisonnables ça ne change rien mais si cette fonction est présente partout dans ton code ça risque de poser problème. Imagine plusieurs chaines de 1000 caractères => à chaque fois c'est un tableau de 1000 valeurs en mémoire.
Par exemple $dossier_decom = str_split($dossier);[...] à quoi bon ?
Pourquoi pas :$dossier (substr($dossier,-1) '/') ? $dossier : $dossier.'/';

Comme cela a été dit, même chose pour l'extension. Il y a pas mal de solutions, ça par exemple :

$extension_possible = array('jpg','jpeg','bmp','png','gif');
if (in_array(pathinfo($complete_file_path, PATHINFO_EXTENSION), $extension_possible)) { ...
Ca te permettrait, moyennant quelques modifs, de ne passer que 2 arguments à la fonction.

Ou encore l'extension fileinfo (>= 5.3 sinon nécessite une bibliothèque)

Tu devrais laisser la possibilité de choisir le css.

Bref, il y aurait d'autres choses à optimiser (comme les car spéciaux par exemple), mais avant cela il faudrait définir la cible :
- est ce une fonction qui permet, au travers des données venant de l'utilisateur, d'afficher des images ?
- est ce une fonction qui n'est destinée qu'au webmaster pour lui éviter d'entrer trop de code ?

Dans le second cas son intérêt est limité. Personnellement je préfère coder les images "en dur" Ceci étant, elle peut trouver son intérêt si le contenu est dynamique, mais dans ce cas je suis de l'avis de Altalavista : une doc suffisante et la fonction est 4 fois moins longue.
Dans le premier cas il manque pas mal de tests (chemin url valide, traitements de la chaîne postée ou "gettée", etc ...)

Cordialement,

Kohntark-
cs_Astalavista
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
-
Au final, il faudrait mieux faire une doc pour la fonction et exiger une extension sans . et on fait juste un in_array et si non, une erreur... sa éviterais un surplus de commentaire .... XD
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
oui sauf que dans le cas d'une vérif d'extension on se fout d'avoir "htaccess" ou "" pour faire la vérif et on économise une regexp... .. . ;o)

@ tchaOo°
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
Ben oui... ton code retournera 'htaccess' pour un fichier .htaccess
Et d'une manière générale, il retournera le nom du fichier si c'est un fichier caché...
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Une regexp pour récupérer une extension de fichier Ô_o

$extension = '';
if (($pos = strrpos($nom_fichier, '.')) !== false)
$extension = substr($nom_fichier,$pos+1);
}

Pour ce qui est du trigger_error tout dépend de la manière dont tu gère tes erreurs... ne pas passer pas le gestionnaire d'erreur de php est justifié si tu gère toi même tes erreurs mais dans ce cas il faut mettre en place un moyen de les récupérer par exemple en passant $erreur_script par référence en paramètre de ta fonction... .. .

@ tchaOo°