Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema FREAD()

  1. #1

    Problema FREAD()

    Ciao a tutti,
    ho un problema con una FREAD, mi spiego meglio: se la uso su variabili semplici, nessun problema, ad esempio:

    Codice PHP:
    $fp fopen("http://www.miosito.com/miofile.txt""r");
     
    if (!
    $fp) {
    //se il file non è stato aperto correttamente
      
    echo "Errore nell'apertura del file";
      exit; 
    //esce dallo script PHP
    }
              
    $bl1 fread($fp2);
    $ean fread($fp16);
    etc.. 
    etc... 
    Se invece provo ad utilizzarla su di un singolo elemento di un array, allora mi restituisce l'errore "Warning: fread(): supplied argument is not a valid stream resource" nella riga dove si trova la fread(), ad esempio in questo codice:

    Codice PHP:
    $fp fopen("http://www.miosito.com/miofile.txt""r");
    $varia file("http://www.miosito.com/miofile.txt");
    $righe=count(file("http://www.miosito.com/miofile.txt"));
    for (
    $a=0$a<=$righe$a++){
        if (
    $varia[$a] =! "") {
          
    $bl1 fread($varia[$a], 1);
          if (
    $bl1 "A") {
            
    $recs++;
          }
        }     
    }
      echo 
    "
    Numero di Articoli: 
    $recs";

    fclose($fp); 
    In sintesi questo file ha records che iniziano con una lettera che identifica il tipo di record e il suo contenuto; devo fare una scansione di tutti record perchè mi interessano solo quelli che iniziano, ad esempio, con il codice di identificazione "A". Evidentemente mi sfugge qualcosa...
    Perdonate la mia ignoranza...

    Vi ringrazio in anticipo...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    il fatto è che $varia=file(...) legge l'intero file dentro il vettore, quindi non hai un puntatore a un file (da usare con fread), ma direttamente il contenuto... scrivi direttamente
    Codice PHP:
    $bl1 substr($varia[$a],0,1); 

  3. #3
    Perfetto, ora funge... !!
    Però ti confesso che non mi è chiaro... fread non mette il contenuto in un vettore?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    per fread... no: in pratica per lavorare su un file hai varie possibilità, tra cui:
    1) aprire un puntatore (fopen), leggere il contenuto passo-passo (fread) e poi chiuderlo (fclose)
    2) usare file(...) che effettua le tre operazioni precedenti in maniera "trasparente" caricando il file una riga alla volta dentro un vettore


    ...se capisco da cosa ha origine il tuo "dubbio" tieni conto che la variabile $fp del tuo esempio NON contiene i dati del file, ma un puntatore che deve essere passato ad altre funzioni (p.es. fread) per leggere materialmente i dati, invece con file il contenuto è letto tutto in una volta, mentre con fread solo pochi byte ad ogni chiamata

  5. #5
    Scusami... la frase di prima era in realtà

    "Però ti confesso che non mi è chiaro... file(...) non mette il contenuto in un vettore?"

    Voglio dire... mi stai confermando che in effetti carico in un vettore, riga per riga, quando uso l'istruzione

    $varia = file("http://www.miosito.com/miofile.txt");

    Ecco perchè non capisco... non lavoro su $fp... ma su $varia[]... ed è lì che mi dava l'errore...

  6. #6
    Sembra che non legga il valore... mi restituisce tutte le righe del file a prescindere da quale sia il primo carattere...

    Codice PHP:
    for ($a=0$a<=$r$a++){
        
    $artcod substr($varia[$a],0,1); 
        if (
    $artcod "A")  { 
          echo 
    $varia[$a]."
    "
    ;
        }    


  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Originariamente inviato da BrokenToy
    Sembra che non legga il valore... mi restituisce tutte le righe del file a prescindere da quale sia il primo carattere...

    Codice PHP:
    for ($a=0$a<=$r$a++){
        
    $artcod substr($varia[$a],0,1); 
        if (
    $artcod == "A")  {  // DOPPIO UGUALE PER IL CONFRONTO
          
    echo $varia[$a]."
    "
    ;
        }    


  8. #8

    Grazie mille...

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prego!

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.