PHP Dosya Daima Yanlış Var

7 Cevap php

I file_exists () her zaman yanlış dönen bir durum var. Benim son girişimi sadece $ _SERVER ["SCRIPT_FILENAME"] için true döndüren ve o öyle dosyayı bulamadı yolun değerini dönecekti olmadığını test etmek oldu.

Yol sorunu çözmek için ille ilgili değil ise: / Users/joe/Workspace/720/app/webroot/index.php

Açıkçası dosyası olduğu belirlenmiş ve php o kadar hizmet vermektedir beri orada olamazdı bile emin değilim var.

Ben bu bir çalışan OS X Snow Leopard yüklemek PHP 5.3.0 ve üzerinde olduğunu belirtmek gerekir.

Herhangi bir fikir harika olurdu.

KOD ÖRNEK:

if (!file_exists($_SERVER["SCRIPT_FILENAME"]))
    $errors[] = 'Cant find:'. $_SERVER["SCRIPT_FILENAME"];

7 Cevap

Ben sadece bu sorunu yaşamış ve son birkaç saat boyunca üzerine yapışmış edilmiştir. Cevap () çalışmak için file_exists için sırayla absoulte yolunu belirtmeniz gerekir olmasıdır. Bu tür 'dir1/images/image.jpg' veya '../../images/image1.jpg' olarak göreli yolları kullanmayın edebilirsiniz. Sen '/ rootdir/subdir/dir1/images/myimage.jpg' belirtmeniz gerekir.

Bu zaten benim için çalıştı budur.

Muhtemelen bir dosya izin mesele. Sizin için test dosyası (Mac OS X üzerinde apache httpd {} çalıştırmak için kullanılan kullanıcı) _www kullanıcı tarafından erişilebilir olduğundan emin olun.

Belki de izin bit olarak 777 ile / tmp üzerine bir dosya için test deneyebilirsiniz.

Umarım yardımcı olur.

This may be of help:
http://bugs.php.net/bug.php?id=48535

Özellikle:

I've set the setting fastcgi.impersonate in php.ini to 1 (like recommendet in the documentation). If I set it to 0 it works.

Ayrıca üst dizini kontrol edin ve ebeveynleri bütün, herkes yürütme erişimi olduğundan emin olun.

(Yerine komut satırında arasında) Apache altında bu çalıştırıyorsanız, bu _www kullanıcı ve Snow Leopard üzerinde _www grup altında çalışır unutmayın. Böylece erişim ihtiyacı olan grup.

file_exists($_SERVER['DOCUMENT_ROOT']."/path/to/file") bu şekilde php sizin için o mutlak yolunu verecek kullanın.

Güvenli mod?

PHP file_exists documentation:

Warning


This function returns FALSE for files inaccessible due to safe mode restrictions. However these files still can be included if they are located in safe_mode_include_dir.