Syntaxe du nom de fichier non reconnu par is_file()

Petit nouveau ! | 3 Messages

23 oct. 2014, 08:19

Bonjour,

Savez vous pourquoi

Code : Tout sélectionner

is_file(16010101-010000-1.jpg);
me renvoie un

Code : Tout sélectionner

false
?

Merci

Eléphant du PHP | 267 Messages

23 oct. 2014, 10:21

Bonjour,

Avec des guillemets, c'est mieux =D> #-o :lol:
is_file('16010101-010000-1.jpg');
@+
dix2

ynx
Mammouth du PHP | 586 Messages

23 oct. 2014, 12:44

Salut,

Je suppose que les guillemets étaient présents sinon le retour n'aurait pas été false mais une erreur de syntaxe.

Il faut penser à mettre le chemin (relatif ou absolu) vers ce fichier si celui-ci n'est pas dans même dossier que le script php.

Bonne journée

ViPHP
ViPHP | 2577 Messages

23 oct. 2014, 14:01

...
Je suppose que les guillemets étaient présents sinon le retour n'aurait pas été false mais une erreur de syntaxe.
...
Pas forcément. PHP faut le calcul avec les "-" puis concatène avec le ".". "jpg" est considéré comme une constante et comme elle n'existe pas, elle prend la valeur "jpg".

C'est dommage de ne pas utiliser error_reporting(E_ALL), ca indique les constantes non définie et les erreurs fautes de frappe.

ynx
Mammouth du PHP | 586 Messages

23 oct. 2014, 14:38

Sur php 5.3, j'ai un joli PHP Parse error : syntax error, unexpected T_STRING

Le fait qu'une constante non définie prend pour valeur le nom de cette constante dépend d'une version spécifique de php ou d'une configuration ?

Mammouth du PHP | 2278 Messages

23 oct. 2014, 14:57

Pour moi j'évite dans les noms de dossiers et de fichiers le signe moins et l'espace que je remplace par le souligné:
oui va..txt devient oui_va.txt
oui-va..txt devient oui_va.txt
Et jamais un chiffre au début.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 2577 Messages

24 oct. 2014, 09:15

j'ai essayé de faire echo b; sur une debian, ca m'a afficher un message comme quoi la constante n'était pas défini puis ca a affiché b quand même.
(j'ai juste passé display_error à On dans php.ini pour avoir le message d'erreur affiché sinon ca marche sans problème)

ynx
Mammouth du PHP | 586 Messages

24 oct. 2014, 14:28

J'avais remarqué ce phénomène sur une ancienne application développée en php4 qui utilisait des chaines de caractères en tant que clés de tableau mais sans quotes : $tableau[cle]
Nous avions alors la notice suivante :
Notice: Use of undefined constant cle - assumed 'cle' in ...

Néanmoins, je ne trouve aucune explication à ce comportement dans la doc (ni le fait que ce comportement ai été modifié sur les nouvelles versions de php) hormis ce commentaire : http://php.net/manual/en/language.constants.php#76304