php file_exists retourne false, même si le fichier existe pas sur mon linux

Cette question a été posée de nombreuses fois, mais aucune des réponses que j'ai trouvé m'a aidé.

J'essaie de le faire en php file_exists() fonctionne. Le seul scénario quand il fonctionne, c'est quand le fichier php est dans le même répertoire que le fichier à utiliser file_exist (), et en utilisant uniquement le nom de fichier (c'est à dire hors du chemin). Mais ce n'est pas conséquente comportement, veuillez voir ci-dessous.

Som informations:

  • safe_mode=off
  • pas de liens symboliques pour le répertoire 28
  • pas d'espace dans le nom du fichier
  • Tous les répertoires dans /var/www/html/smic/upload/28/a apache:apache 777 que l'autorisation.
  • À l'aide de php 5.3

PHP:

echo getcwd()
clearstatcache();
$file = 'file:///var/www/html/smic/upload/28/ul.txt';
//Also tried like this
//$file = '/var/www/html/smic/upload/28/ul.txt';

if(file_exists($file)){
    echo $file." exists";
}

getcwd() imprime /var/www/html/smic/modules/core/billet

La permission de le script php et le fichier à vérifier apache:apache 777.

Quelques détails sur la structure de répertoire:

[root@localhost 28]# pwd
/var/www/html/smic/upload/28

[root@localhost 28]# ls -l ul.txt
-rw-r--r--. 1 apache apache 2 Feb  9 10:50 ul.txt

[root@localhost 28]# chmod 777 ul.txt

[root@localhost 28]# ls -l ul.txt
-rwxrwxrwx. 1 apache apache 2 Feb  9 10:50 ul.txt

Le comportement n'a pas changé après avoir changer les droits du fichier. Le répertoire /28 a drwxr-xr-x. pour l'utilisateur apache et apache groupe

Pour le test, j'ai également déplacé le php-script /28, il a donné apache:apache 777 droits. Changé l' $fichier "ul.txt" (c'est à dire $fichier = 'ul.txt';). Cela fonctionne, l'ul.txt fichier est trouvé.

getcwd() imprime ensuite le fichier /var/www/html/smic/upload/28

Comme un autre test, j'ai essayé de trouver un autre fichier à l'exclusion de la voie dans le "billet" de répertoire, le fichier n'a pas été reconnu.

Je suis cogner ma tête...

Tout conseil est le bienvenue.

La version de php que vous utilisez? Avez-vous l'essayer sans file:// régime?
PHP 5.3, ajouté à mon post. J'ai presque uniquement essayé sans file://

OriginalL'auteur Nicsoft | 2012-02-09