Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    fopen con percorso assoluto

    Ho un dilemma sulla lettura di un file da percorso assoluto...
    In pratica voglio leggere un file di testo e con l'indirizzo relativo (solo il nome del file, essendo nella stessa cartella del file php che lo chiama), funziona.
    A me però servirebbe usare l'indirizzo assoluto...ma non funziona, pur essendo ovvio che il file esista.

    Riassumendo, così funziona:

    Codice PHP:
    $file_name='classifica.txt';

    $fp fopen($file_name'r');
    $classLetta fread($fpfilesize($file_name));
    fclose($fp);

    if( 
    file_exists $file_name ))
    echo 
    $classLetta;
    else
    echo 
    "il file non esiste!"
    mentre sostituendo la prima riga con
    Codice PHP:
    $file_name='http://www.civuoleorecchio.it/Pentagram/classifica.txt'
    ovvero con il percorso assoluto, non va... eppure il file si trova lì...


    Perchè?? Ho letto che usare un path che inzzi con http:// da problemi con fread...Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Infatti è sbagliato proprio il fopen.
    fopen serve ad aprire file locali, non remoti.
    Prova questo invece:

    Codice PHP:
    <?php
    $file 
    file("http://www.esempio.it/lorem_ipsum.txt");
    foreach(
    $file as $line => $content){
      echo 
    "#".$line." => ".$content."
    "
    ;
    }
    ?>
    Se lo hai eseguito correttamente dovrebbe stampare il testo con il numero della linea.

  3. #3

    mmhh....

    Originariamente inviato da skjobax
    Infatti è sbagliato proprio il fopen.
    fopen serve ad aprire file locali, non remoti.
    Prova questo invece:

    Codice PHP:
    <?php
    $file 
    file("http://www.esempio.it/lorem_ipsum.txt");
    foreach(
    $file as $line => $content){
      echo 
    "#".$line." => ".$content."
    "
    ;
    }
    ?>
    Se lo hai eseguito correttamente dovrebbe stampare il testo con il numero della linea.

    Niente... non visualizza niente...
    Il codice che ho usato è questo:
    Codice PHP:
    $file file("http://www.civuoleorecchio.it/Pentagram/classifica.txt");
    foreach(
    $file as $line => $classLetta){
      echo 
    "#".$line." => ".$classLetta."
    "
    ;

    e il file eisite, se caricato nel browser viene visualizzato il testo correttamente: link

  4. #4
    $fp = fopen ($file,"r");
    $riga=fgets($fp);

  5. #5

    mmhh....

    Originariamente inviato da masaniello
    $fp = fopen ($file,"r");
    $riga=fgets($fp);
    Non cambia molto dal mio codice iniziale perchè il risultato del codice per testare:

    Codice PHP:
    if( file_exists $file_name ))
    echo 
    $classLetta;
    else
    echo 
    "il file non esiste!"
    mi viene restituito "il file non esiste!" dunque non viene proprio trovato il file dal percorso assoluto, è la riga $fp = fopen ($file,"r"); che crea il problema usando un percorso assoluto.
    Funziona con "$file = file("classifica.txt");"
    ma non "$file = file("http://www.civuoleorecchio.it/Pentagram/classifica.txt"); "

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    $content=file_get_contents('http://www.civuoleorecchio.it/Pentagram/classifica.txt');
    echo 
    $content
    con questo non sbagli
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Originariamente inviato da masaniello
    $fp = fopen ($file,"r");
    $riga=fgets($fp);
    Il codice postato da masaniello funziona perfettamente invece.
    Ho fatto una prova:

    Codice PHP:
    <?php
    //$file = "classifica.txt";
    $file "http://www.sito.it/classifica.txt";
    $fp fopen($file"r");
    $riga fgets($fp);
    echo 
    $riga;
    ?>
    e funziona.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Originariamente inviato da satifal
    Il codice postato da masaniello funziona perfettamente invece.
    Ho fatto una prova:

    Codice PHP:
    <?php
    //$file = "classifica.txt";
    $file "http://www.sito.it/classifica.txt";
    $fp fopen($file"r");
    $riga fgets($fp);
    echo 
    $riga;
    ?>
    e funziona.

    la funzione fopen() prevede un indirizzo assoluto di questo tipo
    "/home/sito/classifica.txt"
    non "http://www.sito.it/classifica.txt"

    oppure usa la variabile globale $_SERVER["DOCUMENT_ROOT"]

    cosi funziona
    <?php
    $file = $_SERVER["DOCUMENT_ROOT"]."/classifica.txt";
    $fp = fopen($file, "r");
    $riga = fgets($fp);
    echo $riga;
    ?>

  9. #9
    Ciao,
    domanda:
    il parametro di php.ini allow_url_fopen è settato su On?
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  10. #10
    Originariamente inviato da modografico
    la funzione fopen() prevede un indirizzo assoluto di questo tipo
    "/home/sito/classifica.txt"
    non "http://www.sito.it/classifica.txt"
    ...
    Questo non è corretto, dagli esempi illustrati nel manuale PHP riguardo alla funzione fopen() si può notare che sono consentiti sia URL che indirizzi assoluti.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.