[PHP] Pas de dif. entre min et MAJ.

Résolu/Fermé
Boloss - 16 mai 2010 à 22:15
 Boloss - 16 mai 2010 à 23:18
Bonjour,

J'utilise ceci pour vérifier l'extension d'un fichier mon script de upload :

<?php
$exs = array('zip', 'rar');
if(!in_array(substr(strrchr($_FILES[$fichier]['name'], '.'), 1), $exs)) {
echo 'STOP';
}
?>


Cela fonctionne très bien, mais le problème c'est que si l'extention est ZiP, ZIP, zIp... cela ne fonctionne pas.

Comment faire pour qu'il n'y est pas de différence entre les majuscules et les minuscules ?

Merci d'avance.
A voir également:

4 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
16 mai 2010 à 22:21
Tu peux transformer l'extension du fichier uploadé en minuscules ...
https://www.php.net/manual/fr/function.strtolower.php

Pour récupérer l'extension, je te conseil d'utiliser pathinfo
https://www.php.net/manual/fr/function.pathinfo.php

<?php
$infos = pathinfo($_FILES[$fichier]['name']);
$extensions = array('zip', 'rar');
$extension = strtolower($infos['extension']);

if(in_array($extension, $extensions)) {
    // ok
} else {
    // pas ok
}
?>
0
Ok merci beaucoup !

J'ai trouve la fonction strcasecmp, est ce que cela pourrait également fonctionné ?

<?php
$exs = array('zip', 'rar');
if(!in_array(strcasecmp(substr(strrchr($_FILES[$fichier]['name'], '.'), 1), $exs))) {
echo 'STOP';
}
?>
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
16 mai 2010 à 22:56
Oui
0
J'ai testé mais j'ai une erreur... :s
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
16 mai 2010 à 23:00
Désolé, je t'ai dit oui trop vite.
Cette fonction permet bien de comparer deux chaines sans prendre en compte la casse (majuscules/minuscules).
Mais les deux paramètres à passer doivent être des chaines, pas un tableau.
Utilise la méthode que je t'ai donné.
0
D'accord, je vais utiliser ta méthode. ;)

Mais j'ai toujours pas compris le truk avec les ['trkuk'] :

<?php
$infos = pathinfo($_FILES[$fichier]['name']);
$extensions = array('zip', 'rar');
$extension = strtolower($infos['extension']);

if(in_array($extension, $extensions)) {
// ok
} else {
// pas ok
}
?> 


['name'] est appelé et utilisé pour quoi ?
['extension'] est appelé et utilisé pour quoi ?

Et puis...

Est ce que c'est possible de faire tous sur une suel ligne pour évité la variable $infos et $extension ?

Merci d'avance.
(Je sais, je pose beaucoup de questionS...)
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
16 mai 2010 à 23:15
<?php
$infos = pathinfo($_FILES[$fichier]['name']);
if(in_array(strtolower($infos['extension']),array('zip', 'rar'))) {
    // ok
} else {
    // pas ok
}
?>
On ne peut pas plus compresser.
Pour ton autre question, je t'ai déjà passé deux liens y répondant, avant que tu me les poses.

https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
https://www.php.net/manual/fr/function.pathinfo.php
0
<?php
$infos = pathinfo($_FILES[$fichier]['name']);
$extensions = array('zip', 'rar');
$extension = strtolower($infos['extension']);

if(in_array($extension, $extensions)) {
// ok
} else {
// pas ok
}
?>

Sinon à quoi sert ['name'] et ['extension'] dans les fonctions ?
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
16 mai 2010 à 22:56
Ce n'est pas que dans les fonctions qu'on les trouves.
C'est quand une variable contient un array associatif.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
0
D'accord donc cela permet juste d'utiliser la fonction in_array par la suite ?
0
Merci beaucoup !

Résolu !
0