Vous n'êtes pas identifié(e).
Bonjour,
J'ai bidouillé une petite fonction pour écrire proprement les noms de fichiers de photos sans caratères interdits.
J'ai fait un explode sur le . de jpg, ça fonctionne pas trop mal.
// strtolower passe en minuscule
$chaine = strtolower($array[0]);
//remplace les caractères de $tofind par ceux de $replace
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ .";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn__";
$resultat=strtr($chaine,$tofind,$replac);
$resultat = "$resultat.$array[1]";
return($resultat);
}
echo renomePhoto('La Journée est Belle.jpg');
Petit souci, si le nom de fichier a des points dans le nom, (ex:photo.avec.des.points.par.exemple.jpg) ça ne fonctionne plus. Est-il possible de faire un explode seulement sur le dernier point du type de fichier et pas sur les autres éventuels point de la chaine ?
Merci de votre aide.
Hors ligne
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Hello,
Merci Maljuna Kris de ta réponse, comme je ne suis pas super en Php, je ne ta cache pas que je n'ai pas tout compris à ton empilage de fonction.
Donc j'ai simplement suivi ton conseil, j'ai remplacé mon bout de code
parle tient
ce qui une fois intégré donne
Avec l'exemple de "'La Journée est Belle.jpg'" le résultat est "la" alors que je voudrais "la_journee_est_belle.jpg".
Si quelqu'un peut m'expliquer la proposition de Maljuna Kris, je pourrais peut-être comprendre où ça pèche.
Merci
Hors ligne
$photo=substr($photo,0,strpos(strrev($photo),'.')-1);
substr = récupère dans la chaine $photo à partir de 0 et sur une longueur de X (voir la suite)
strpos = cherche la position dans la chaine $photo du caractère " . "
strrev = renverse le mot (ex : Bonjour devient ruojnoB) [utile pour ne trouver que le DERNIER "."]
En francais, pour détailler :
strrev($photo) te donne "gpj.elleb tse eenruoj al".
si on cherche la position du " . ", cela donne 4 (avec le -1, ça fait 3)
On récupére dans "la journee est belle.jpg" la chaine partant du caractère en position 0 jusqu'a celui en position 3
donc on a "la " (avec l'espace)
Il manque un paramètre : la longueur totale [strlen()] de la chaine pour "piocher" dans le reste !!
Tente avec un :
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Oui, je suis allé un peu vite il faut prendre strlen($photo)-strpos(strrev($photo),'.') comme longueur de substr
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne