La lettura di un file .dat come “rb” binario di lettura
Domanda
Ho un \folder\
cartella sopra la webroot che contiene .php
, .inc
, file .dat
-
il
.php
può accedere al.inc
nessun problema -
ma quando i tentativi di accedere al
.inc
.dat
utilizzandofopen('mydat.dat', "rb");
dà un errore che non può trovaremydat.dat
all'interno\folder\myinc.inc
Naturalmente non può trovare da quando .inc
è un non file di una cartella. Perché php trattando come tale?
Tutte le idee perché php sta cercando di trovare il .dat
all'interno del .inc
?
o altre alternative alla fopen($filename, "rb")
?
Soluzione
Dopo aver letto i vostri commenti, credo che ci si aspetta FOPEN di utilizzare l'include_path.
fopen () non utilizza l'include_path di default (a differenza di includere). E 'un'opzione. Vedere il manuale. http://www.php.net/manual/en/function.fopen. php
Altri suggerimenti
imparare le basi del filesystem. la directory di lavoro è ancora in webroot. doesnt cambiarlo al \ cartella \ (anche se sembra nuove versioni di PHP fare file guardare dentro di posizione del file corrente).
In ogni caso, se si desidera aprire un file nella stessa directory, dirname(__FILE__)
è sempre per voi
nel myinc.inc è possibile utilizzare
fopen(dirname(__FILE__).'/mydat.dat', "rb");
Sembra che hai safe_mode
abilitato, ma non hanno un valore per open_basedir
, o di avere il file di fuori di esso. Inserire il file .dat in un percorso dato a questa opzione.
Quando mai abbiamo a che fare con i file in php. E 'necessario dare il nome del percorso + file per evitare questo tipo di errori.