IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Interprétation des retours à la ligne


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Par défaut Interprétation des retours à la ligne
    Bonjour,
    J'ai un soucis avec un script php. Le fichier généré est un fichier txt dans lequel il devrait y avoir des retours à la ligne... Sauf que lorsque j'édite mon fichier avec mon bloc note de mon serveur cela ne fonctionne pas. Si j'édite avec mon bloc note sur mon poste Windows 11 cela fonctionne... Ce fichier est importé dans un logiciel et il ne fonctionne pas, il n'interprète donc pas non plus le retour à la ligne... je sèche. J'ai essayé en mettant \n puis \r\n puis PHP_EOL mais rien n'y fait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?php
     
    //cas de la tâche planifiée
    if (!empty($argv[1]) && $argv[1] === 'planif') {
        $url = 'passerelle_carburant';
        require_once dirname(__FILE__) . '/../../config.php';
        require_once dirname(__FILE__) . '/../../model/common/Utils.php';
        \Common\Utils::initAutoloader();
        try {
            $nameFile = date('Ymd_His') . '_export.txt';
            $pathLog = dirname(__FILE__) . '/../../log/' . $nameFile;
            if (file_exists($pathLog)) {
                unlink($pathLog);
            }
            $fileLog = fopen($pathLog, 'c+b');
            $cpyMan = new \Admin\Company\CompanyManager(new Common\DAO(DB_CONFIG));
            $tabCpy = $cpyMan->getAll();
            $expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
    		foreach ($tabCpy as $cpy) {
                $dataRes = $expMan->getAll(['month' => date('m') - 1, 'year' => date('Y'), 'cpy' => $cpy]);
                fwrite($fileLog, 'Société : ' . $cpy->getName() . "\r\n");
                fwrite($fileLog, '- Consommation : ' . $dataRes['conso'] . "\r\n");
                fwrite($fileLog, '- Refacturation : ' . $dataRes['refact'] . "\r\n");
            }
            fclose($fileLog);
            $mail = new Common\Mail('Passerelle carburant - Export automatique', 'L\'export mensuel s\'est déroulé avec succès', DEST_MAIL, ['si@gmail.com' => 'Service informatique']);
            $mail->addFile(['name' => $nameFile, 'tmp_name' => $pathLog, 'type' => 'application/txt', 'size' => filesize($pathLog)]);
            $mail->sendMail();
        } catch (\Admin\AdminException | Exception | Swift_SwiftException $exc) {
            fwrite($fileLog, 'Erreur lors de l\'export mensuel ' . $exc->getMessage());
            $mail = new Common\Mail('Passerelle carburant - Erreur', 'Une erreur est survenue lors de l\'export mensuel : ' . $exc->getMessage(), DEST_MAIL, ['si@gmail.com' => 'Service informatique']);
            $mail->sendMail();
        }
    } else {
        require_once(dirname(__FILE__) . '/../../view/template/header.php');
        if (empty($_SESSION['authentPasserelleCarburant']['authent']) && empty(filter_input(INPUT_GET, 'planif'))) {
            require(dirname(__FILE__) . '/../../view/template/noaccess.php');
        } else {
            try {
                $safePost = filter_input_array(INPUT_POST);
                $yearSel = empty($safePost['year']) ? date('Y') : $safePost['year'];
                $monthSel = empty($safePost['month']) ? date('m') - 1 : $safePost['month'];
                if (!empty($safePost)) {
                    $cpy = unserialize(urldecode($safePost['cpy']));
                    $expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
                    $dataRes = $expMan->getAll(['month' => $monthSel, 'year' => $yearSel, 'cpy' => $cpy]);
                }
            } catch (Admin\AdminException $ex) {
                echo new \Common\Alert($ex->getMessage(), 'error');
            }
        }
        include (dirname(__FILE__) . '/../../view/export/v_export.php');
        include (dirname(__FILE__) . '/../../view/template/footer.php');
    }

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 679
    Par défaut
    Citation Envoyé par matthieudu57 Voir le message
    lorsque j'édite mon fichier avec mon bloc note de mon serveur cela ne fonctionne pas.
    quel est le système d'exploitation sur le serveur ?
    vous comparez bien le même fichier ? il n'y a pas de transfert FTP qui aurait pu modifier le fichier ?

  3. #3
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Par défaut
    Windows server 2016.
    non pas de transfert.
    Ce qui est bizarre c'est que, sur le serveur, si je l'ouvre avec le bloc-notes je n'ai pas de retour à la ligne. Par contre si je l'ouvre sur ce même serveur avec notepad++ j'ai bien les retours à la ligne.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 679
    Par défaut
    pouvez vous nous mettre en pièce jointe un fichier de test avec quelques lignes ?

  5. #5
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Par défaut
    Je viens de voir que le problème ne se fait que sur Windows server 2016 que si j'édite mon fichier avec le bloc notes d'un serveur 2022 ça fonctionne correctement.
    Et bien sûr mon application qui doit importer le fichier tourne sur un 2016...

  6. #6
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Par défaut
    Bonjour,

    Bizarre si je mets la partie là en commentaire mon export fonctionne toujours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
                $safePost = filter_input_array(INPUT_POST);
                $yearSel = empty($safePost['year']) ? date('Y') : $safePost['year'];
                $monthSel = empty($safePost['month']) ? date('m') - 1 : $safePost['month'];
                if (!empty($safePost)) {
                    $cpy = unserialize(urldecode($safePost['cpy']));
                    $expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
                    $dataRes = $expMan->getAll(['month' => $monthSel, 'year' => $yearSel, 'cpy' => $cpy]);
                }
    Du coup je me demande si mes retours à la ligne sont bien placés...

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/11/2012, 09h49
  2. Affichage des retours à la ligne
    Par joquetino dans le forum Langage
    Réponses: 1
    Dernier message: 29/03/2006, 20h23
  3. Écrire des retours à la ligne
    Par Metallic-84s dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2006, 09h05
  4. [MSXML][C++] enregistrer avec des retours de lignes
    Par themadmax dans le forum XML
    Réponses: 3
    Dernier message: 15/11/2005, 18h48
  5. [MySQL] Gestion des retour à la ligne
    Par Husqvarna dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/10/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo