2010-02-26 3 views
1

Voici ma chaînePourquoi cette chaîne retournerait false dans PHP quand realpath() 'd?

$newPath = '/~new/assets/js/../packages/prettyphoto/js/jquery.prettyPhoto.js'; 

maintenant vérifier cette sortie

var_dump($newPath); // string(64) "/~new/assets/js/../packages/prettyphoto/js/jquery.prettyPhoto.js" 
var_dump(realpath($newPath)); // bool(false) 

Est-ce que quelqu'un sait pourquoi ce serait faux retour sur moi?

Répondre

3

Hey, vous étiez le gars qui a fourni le manual link dans votre last question! Ne liez pas simplement, lisez-le. :)

realpath() renvoie la valeur FALSE en cas d'échec, par ex. si le fichier n'existe pas.

+0

Je jure que je n'ai pas trouvé ça! – alex

+0

Mes yeux semblent lire tout sauf ce qu'ils devraient dans les docs PHP. – alex

+0

Happens :) mais la réponse de @ Decipher vaut également la peine d'être vérifiée. –

2

Vous trouverez en ajoutant

print_r(error_get_last()); 

Après votre déclaration. Les erreurs possibles sont décrites dans le man page.

2

Un rapide coup d'oeil sur la définition de php.net de realpath montre cette note, qui peut être pertinente:

Note: Le script exécuté doit disposer des autorisations exécutables sur tous les répertoires dans la hiérarchie, sinon realpath() renverra FALSE.

+0

Merci, +1, bon à savoir. – alex

Questions connexes