01net    Web


Actuellement en ligne : 677 Utilisateurs dont 25 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Zplay, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> ignorer la casse en PHP
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
slayer54
  
   
      ?   @     Posté le 29/04/2008 16:40:10  
Voter pour ce message
Bonjour,

avant tout, je tiens à vous prévenir que j'ai pris la peine de faire une recherche avec le moteur de ce forum et que je n'ai rien trouvé (le moteur n'affiche pas les résultats mais la liste des sujets récents...)

donc j'ai cherché aussi sur php.net, sur google etc.. rien de concluant.

je voudrais, sur une chaine de caractères, ignorer la casse.

En effet, je travaille sur des fichiers, et dans mon projet, des personnes seront amenées à créer un fichier infos.xml qui sera stocké dans une archive zip qui sera décompressée par un script PHP.

Mais, prévoyant comme je suis, j'ai réalisé que parfois en décompressant, les noms de fichiers de moins de 11 caractères sont retranscris en majuscules, ou tout simplement les personnes peuvent crééer un fichier Infos.xml, infos.XML et j'en passe...

Pour ne pas avoir de problèmes lors de l'ouverture de ce fichier, j'aurais besoin d'ignorer la casse dans son nom :
if (file_exists($chemin_decompression.'infos.xml')) {
$xml = simplexml_load_file($chemin_decompression.'infos.xml');
} else {
exit('Echec lors de l\'ouverture du fichier infos.xml.');
}


Suis je clair ? :o) Merci d'avance
Martius
  est bon : Mangez en !
  :-)
      ?   ^   @     Posté le 29/04/2008 18:01:38  
Voter pour ce message
A la limite, tu peux faire un test avec toutes les casses possibles, avec plein de boucles, ou juste les casses susceptibles d'apparaître (puisque ton problème est assez précis).

et tu testes pour chaque valeur si le fichier existe.

En gros, il ne me semble pas que PHP ai un paramètre dans le php.ini qui permette de le rendre insensible à la casse.
naheulbeuk
  
  :-)
      ?   ^   @     Posté le 30/04/2008 11:26:31  
Voter pour ce message
bonjour, la fonction strtr() en php permet de remplacer des caractères (majuscules ou accents dans ton cas) par d'autres (ici minuscules ou caractères inaccentués) ;)
-------
Visitez mon site sur la sécurité informatique : http://www.site-naheulbeuk.com
Et son forum : http://www.site-naheulbeuk.com/forum/
slayer54
  
   
      ?   @     Posté le 30/04/2008 16:40:15  
Voter pour ce message
merci merci !

alors, j'ai essayé avec str_replace() qui a un comportement équivalent à strtr() dans mon cas :


$minuscules = Array("i","n","f","o","s");
$majuscules = Array("I","N","F","O","S");

$ini = "InfOs";

$final = str_replace($majuscules,$minuscules,$ini);
echo $final;


mais au final, le problème est dans le nom du fichier (xml au passage), et je pense qu'il vaudrait mieux que je fasse un scan de reprtoire en PHP afin de trouver le fichier XML...

EDIT

Alors je crois avoir trouvé pour ma deuxième solution : en effet j'utilise une libraire PclZip afin d'extraire les fichiers de mon archive. J'ai accès aux noms de fichiers contenus dans cette archive. J'ai donc utilisé strstr() afin de chercher une occurence de ".xml" dans le nom de fichier, tout simplement !

for ($i=0; $i<sizeof($list); $i++) {

for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {

echo "File $i / [$key] = ".$list[$i][$key]."<br>";

}

if(strstr($list[$i]['filename'],".xml"))

echo "<b><br>g trouvé le XML !<br></b>";

echo "<br>";
}
-->Message édité par slayer54 le 30/04/2008 16:50:21<--
lemery
  tectaunique sur kamta.net
   
      ?   ^   @     Posté le 03/05/2008 10:35:03  
Voter pour ce message
une réponse simple à ton problème est de mettre tous les noms de fichiers en minuscule après la décompression.
va voir sur : http://fr3.php.net/manual/fr/function.strtolower.php.
-------
Visiter mon site sur le développement.
http://www.kamta.net
Martius
  est bon : Mangez en !
  :-)
      ?   ^   @     Posté le 04/05/2008 13:53:43  
Voter pour ce message
Ouaip, tant qu'il n'y en a pas deux qui auront le même nom y'a pas de souci :)
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> ignorer la casse en PHP

Aller à :

Page générée en : 0.202s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat - Caractere.net -
Electronique.biz - Mesures.com - Transaction.fr

Architecture 3D
Dessinez, meublez, décorez et visualisez vos projets et la maison de vos rêves.
Conseils
Découvrez plus de 300 astuces pour Windows (XP et Vista) et vos logiciels préférés