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 utilizzando fopen('mydat.dat', "rb"); dà un errore che non può trovare mydat.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")?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top