Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema fopen

  1. #1

    Problema fopen

    ciao,

    sto realizzando uno script php che importai i dati da un file con estensione .dat in un data base. Quello che faccio è entrare in una dir, leggere i file che ci sono, se il mone verifica certi requisiti deve essere elaborato. solo che nella dir ci sono anche altre cose..e su queste altre cose ho errore. Posto parte del codice che uso.

    Codice PHP:
    if ($handle opendir("$directory")) {
        while (
    false !== ($file readdir($handle))) {
            echo 
    "nome file: $file 
    "
    ;
    //         prende solo i file... escludendo le directory
            
    if (!is_dir($file)) {
                
    $estensione_trovata substr($filestrrpos($file"."), strlen($file)-strrpos($file"."));
                
    $seconda_p_nome=substr($file,-8,4);
                if (
    $estensione_trovata $estensione_file) {
                    if (
    $seconda_p_nome == $nome_file2) {
                         
    $file_elaborati++;        
    //                      ************** INIZIO GESTIONE FILE
    //                    echo "Elaboro il file 
    ";


    if (!
    $p_file = fopen($directory."/".$file,"r")) {
            echo "
    Spiacentenon posso aprire il file $nome_file";
    } else {
        echo "
    p file cosa è$p_file 
    ";
        print "
    Elaborazione file ".$file." in corso.... 
     
    ";
        
    $conteggio=0;
        while(!feof(
    $p_file)) { // leggi fino alla fine del file
        
    $linea = fgets($p_file, 255);
        
    $vett=explode(",",$linea);
            if (
    $linea<>"  ") { // if su riga non vuota!            
        
    $query_insert_1="INSERT INTO cr10 (";
            
    $query_insert_2="VALUES (";
                                
    //    Costruisco la query pezzo x pezzo                            

        if (
    $vett[0]<>"-9999") {
            
    $query_insert_1.="idid_letto";
            
    $query_insert_2.="'','$vett[0]'";
        }
    } else {
        continue;
    }    // fine if su riga non vuota!
                            
        
    $query_insert=$query_insert_1.$query_insert_2;
        if (is_numeric(
    $vett[0]) ){
              
    $dati_inseriti++;
              
    $result_insert=mysql_query($query_insert) or die ("Non riesco ad eseguire la query"); 
        } else {
              continue
        }
                                  
    } // fine apertura file                          
    } // fine if su seconda parte nome                            
    }  else { // 
            print " 
    OK file che non interessa 
    ";
    } // fine if su estensione trovata                        
    } // fine if su is dir
    fclose(
    $p_file);
    } // fine su while open file 
    però quando eseguo los cript l'output che ricevo è questo:
    codice:
    Import dati della directory: dati_miei
    nome file: .
    nome file: ..
    nome file: 0207CR10.dat
    p file cosa è? Resource id #7
    Elaborazione file 0207CR10.dat in corso....
    nome file: dati_originali
    OK file che non interessa
    
    
    Warning: fclose(): 7 is not a valid stream resource in C:\xampp\htdocs\script_cr10.php on line 159
    nome file: PTU08020700.CSV
    OK file che non interessa
    
    Warning: fclose(): 7 is not a valid stream resource in C:\xampp\htdocs\script_cr10.php on line 159
    e nn riesco a capire come eliminare il warning. la linea in questione, la 159, è quella relativa al fclose.
    qualcuno sa dirmi il motivo di questo warning e a cosa è dovuto??
    grazie.
    PeppePegasus

  2. #2
    Studiati questo codice:

    Codice PHP:
    <?php

    $files 
    glob($directory '/*.dat');

    foreach (
    $files as $file) {

        if (!
    is_readable($file)) {
            print(
    "File not readable: {$file}\r\n");
            continue;
        }

        
    $handle = @fopen($file"r");
        if (
    $handle) {
            while (!
    feof($handle)) {
                
    $line trim(fgets($handle255));
                
                if (
    $line != '') {
                    
    $vett explode(','$line);
                    
                    if (
    $vett[0] != '-9999') {
                        
    $sql sprintf('INSERT INTO cr10 (id, id_letto) VALUES ("", "%s")'mysql_real_escape_string($vett[0]));
                        
    mysql_query($sql) or die(sprintf('Unable to execute the query "%s" : %s'$sqlmysql_error()));        
                    }
                    
                }
            }
            
    fclose($handle);
        }


    }

    ?>

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.