Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] Argomento funzione file()

  1. #1
    Guest

    Predefinito [php] Argomento funzione file()

    Buongiorno a tutti.
    Il mio problema è semplice: qualcuno mi spiega la sintassi dell'argomento della funzione file()? Più precisamente: come si scrive il percorso?

    In dettaglio: necessito di leggere l'array che esce fuori da un file di testo, chiamiamolo testo.txt, a mo' di database mediante la funzione file().
    Finché lo script è nella stessa directory di testo.txt, con $array=file("testo.txt") tutto funziona.
    Finché lo script è a monte di testo.txt, con $array=file("sottocartella/testo.txt") tutto funziona.
    Non ne vengo fuori se lo script è a valle del file da leggere...

    Ho una struttura del tipo cartella/sottocartella, dove testo.txt è su cartella, script.php è ancora su cartella (e da lì nessun problema di lettura), e appena voglio far leggere testo.txt da sottolettura.php, situato in sottocartella, che incorpora script.php tramite include(), non riesco a vedere l'array.
    Ho provato con file("../testo.txt"), con file("/blabla/cartella/testo.txt"), con file("http://www.miosito.altervista.org/blabla/cartella/testo.txt") ...niente da fare!

    Ora come ora ho creato una variabile di sessione... per carità funziona e serve allo scopo, ma sono abituato a risolverli i problemi, non aggirarli...
    Grazie in anticipo se qualcuno mi darà delucidazioni in merito.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    La cosa più pratica è usare il percorso assoluto, quindi per il tuo file, secondo i tuoi esempi, è /membri/coreyx/blabla/cartella/testo.txt


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Capito. O meglio, la differenza tra percorso assoluto e quello che chiamo io percorso assoluto (cioè http://www.sito.etc.etc.) non mi è mai stata molto chiara, ma vabbè.
    Più che altro: è formalmente errata la sintassi con i due punti per "arretrare" di una cartella? O sbaglio io qualcosa?

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Devi distinguere tra percorsi assoluti sul filesystem locale e URL.

    I primi si riferiscono ai file presenti su una macchina e se cominciano per / si intende a partire dalla radice. In questo modo il file viene richiesto direttamente al sistema operativo.

    Gli URL cominciano con il protocollo (http:) e poi il percorso assoluto della risorsa. In questo caso invece la richiesta passa da un server web.

    Nel tuo caso è più corretto ed efficiente richiedere i file dal filesystem.

    I due punti servono a risalire di un livello nell'albero delle cartelle, rispetto alla posizione dello script che lo richiede. Quando la situazione è un po' complessa, con script PHP che ne includono altri, è più pratico affidarsi ai percorsi assoluti per non stare lì ad impazzire.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    "per non stare lì ad impazzire" è decisamente corretto. L'include mi mandava lo script a risalire di DUE cartelle, e non di una soltanto. Ora la sintassi coi due punti ../../testo.txt funziona. Per cui concludo che era corretta e io scemo.
    Grazie in ogni caso per le spiegazioni sui percorsi.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •