0

I have a problem with this PHP script. It was working but suddenly it doesn't work anymore. The CSV file if good and not empty.

What would the problem be?

    <?php
        require_once 'Controller/DBController.php';
        ini_set('memory_limit', '-1');
        ini_set('max_execution_time', 14400);
        //header('Content-type: text/plain; charset=utf-8');
        //$ftp_server="I-BRETON.corp.noxiane.net";
        $ftp_server="ftp-euc.corp.noxiane.net";
        $ftp_user_name="*****"; 
        $ftp_user_pass="*****"; 
    
        $ftp_server_infoservice_r7 = "s*********t.fr"; (i just replaced the server with *** for the post)
        $ftp_server_infoservice_prod = "s*********t.fr"; 
    
        $ftp_login_infoservice = '*****';
        $ftp_pass_infoservice = '*******';
    
        $rowNumber = 0;
        $row = [];
        $content = [];
        $tabFilesList = [];
        $serveur_dir = '/lem-shared/_DataApplications/APW/DIGITAL/Ronde Securite';
        // $filename = 'bdd ronde de secu reponse.csv';
        $type = 'reponse';
        $format = '.csv';
    
        $dir = "C:\\wamp64\\www\\Infoservice_APW_RONDE_SECURITE\\";
        $path = "C:/wamp64/www/Infoservice_APW_RONDE_SECURITE/APW_RONDESECUR";
    
        $local_dir = $dir . 'APW_RONDE_SECURITE_R/';
    
        
        // Récupération des fichiers sur le I:/
        try {
            $conn_id = ftp_connect($ftp_server); 
            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
            ftp_pasv($conn_id, true);
            if ($filesList = ftp_nlist($conn_id, $serveur_dir)) { 
                foreach($filesList as $serveur_file) {
                    $file = explode("/", $serveur_file)[6];
                    var_dump($file);
    
                    //echo $file;
                    if(strpos($file, $type) !== false && strpos($file, $format) !== false)
                    {
                        echo "<br/> passage !";
                        array_push($tabFilesList, $local_dir.$file);
                        var_dump($tabFilesList);
                        echo '<br/> Fichier récupéré <br/>';
                        if (ftp_get($conn_id, $local_dir.$file, $serveur_file, FTP_ASCII)) { 
                            echo "passage 2";
                            echo "successfully downloaded files\n";
                            var_dump($tabFilesList);
                        } 
                        else { 
                            echo "There was a problem while uploading $file\n"; 
                        }
                    }
                }
            } 
            else { 
                echo "Problème rencontré pour lister les fichiers"; 
            }
    
            ftp_close($conn_id);  
    
        } catch (Exception $e){
            echo $e;
        }
    
    
        // boucle sur tous les fichiers récupérés du I:/ pour les formater dans un fichier sans extension
    
        $dbcontroller = new DBController();
        
        $rowNumber = 0;
        
        //if (($handle = fopen("APW_RONDE_SECURITE_R/tmp/export-bdd-reponse.csv", "r")) !== FALSE) {
            
        if (($handle = fopen($tabFilesList[0], "r")) !== FALSE) {
            while (($data = fgetcsv($handle, 10000, ";")) !== FALSE) {
                if($rowNumber != 0) { 
                    $row = [];
                    $nbCol = count($data);
                    for($i = 0; $i < $nbCol; $i++) {
    
                        if(strpos($data[$i], ';') !== false)
                        {
                            $data[$i] = str_replace(';', ',', $data[$i]);
                        }
    
                        
                        if($i == 3 || $i == 10)
                        {
                            // 10/27/2020 10:53
                            $date = DateTime::createFromFormat('d/m/Y H:i', $data[$i]);
                            // Format voulu : 27/10/20 10:53
                            $reformat_date = $date->format('d/m/y H:i');
                            //print_r ($reformat_date);
                            array_push($row, $reformat_date);
                        }
                        else {
                            array_push($row, $data[$i]);
                        }
                    }
    
                    array_push($content, $row);
                    echo $data[2];
                    $stmt = "SELECT * FROM LEM_APW_RONDESECU_R WHERE ID = '".$data[2]."' ";
                    $query = $dbcontroller->executeQueryOracle($stmt);
                    $id = null;
                    while (($ligne = oci_fetch_array($query, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
                        $id = $ligne['ID'];
                    }
                    var_dump($id);
                    
                    if(!$id == null) // On regarde si on a récupérer un ID, si ce n'est pas le gars alors $id est à null
                    {
                        $stmt = "DELETE FROM LEM_APW_RONDESECU_R WHERE ID = '".$id."' ";
                        $query = $dbcontroller->executeQueryOracle($stmt);
                        //echo "Suppression de l'élément " . $id . "qui éxistait déjà";
                    }
                    
                    
                }
                $rowNumber++;
            }
        
        fclose($handle);
        }
    
        $new_filename = 'APW_RONDESECUR';
        $file = fopen($path, 'w');
        foreach($content as $line){
            fputcsv($file, $line, ';');
        }
        fclose($file) ; 
    
        // upload sur Infoservice_PROD
        
        try {
            $conn_id = ftp_connect($ftp_server_infoservice_prod); 
    
            $login_result = ftp_login($conn_id, $ftp_login_infoservice, $ftp_pass_infoservice);
            ftp_pasv($conn_id, true);
    
            // upload a file 
            if (ftp_put($conn_id, $new_filename, $path, FTP_ASCII)) { 
                echo "successfully uploaded $file\n"; 
            } 
            else { 
                echo "There was a problem while uploading $file\n"; 
            } 
    
            ftp_close($conn_id);  
    
        } catch (Exception $e){
            echo $e;
        }
Chris Haas
  • 50,516
  • 12
  • 134
  • 260
Aziz
  • 1
  • 1
    Remove the `try/catch`, turn on [PHP error reporting](https://stackoverflow.com/a/21429652/231316), inspect the error messages and logs – Chris Haas Apr 04 '22 at 16:46

0 Answers0