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

Langage PHP Discussion :

comment en php fait-on un retour à la ligne lorsqu'on écrit dans un fichier .ini ?


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut comment en php fait-on un retour à la ligne lorsqu'on écrit dans un fichier .ini ?
    Bonsoir les amis,

    J'ai un petit prob. J'ai des données à écrire dans un fichier .ini . Ceux sont des données très simples :
    Voici ce que j'éssaie d'obtenir dans le fichier .ini
    en=en
    fr=fr
    de=de
    Mlaheureusement avec toutes mes methodes, ne sachant pas comment faire un retour chariot, j'obtiens ceci :
    en=en fr=fr de=de
    ou en=en\nfr=fr\nde=de
    Pourriez-vous SVP me dire comment faire retour chariot avec ce code bien entendu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $listeLang = '';
    	while ($myRow = mysql_fetch_assoc($monchampSql))
    	{
        $listeLang .= $myRow['indice'].'='.$myRow['indice'];
        }
     
    file_put_contents('../utils/ini/config.ini', '[public lang]
    '.$listeLang.'
     
    visible=yes ');
    D'avance je vous remercie

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Il faut utiliser \n (voire \r\n avec un serveur sous windows) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $listeLang = '';
     
    while ($myRow = mysql_fetch_assoc($monchampSql)){
        $listeLang .= $myRow['indice'].'='.$myRow['indice']."\n";
    }
     
    file_put_contents('../utils/ini/config.ini', '[public lang]'."\n".$listeLang."\n".'visible=yes');
    Il faut absolument l'encapsuler entre guillemets car entre apostrophes (quotes) il est considéré comme une chaine de caractères.

  3. #3
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Oui tu as raison mon frère. Il faut combiner les deux \r\n , vu que je suis sur windows. J'ai une dernière question. Mon serveur distant est apache. Je dois modifier le code à \n avant de le mettre en ligne ou cette combinaison \r\n marche également pour apache ?

    Encore merci beaucoup

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Oui, il ne faut pas confondre serveur Web et système d'exploitation.

  5. #5
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Je suppose que le oui, veut dire que mon code doit rester tel \r\n et ça marchera sans problème en ligne.

    Merci beaucoup

  6. #6
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    Salut,
    si ca peut t'aider :
    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
     
    <?php
    function write_php_ini($array, $file)
    {
        $res = array();
        foreach($array as $key => $val)
        {
            if(is_array($val))
            {
                $res[] = "[$key]";
                foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
            }
            else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
        }
        safefilerewrite($file, implode("\r\n", $res));
    }
    //////
    function safefilerewrite($fileName, $dataToSave)
    {    if ($fp = fopen($fileName, 'w'))
        {
            $startTime = microtime();
            do
            {            $canWrite = flock($fp, LOCK_EX);
               // If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load
               if(!$canWrite) usleep(round(rand(0, 100)*1000));
            } while ((!$canWrite)and((microtime()-$startTime) < 1000));
     
            //file was locked so now we can store information
            if ($canWrite)
            {            fwrite($fp, $dataToSave);
                flock($fp, LOCK_UN);
            }
            fclose($fp);
        }
     
    }
    ?>
    Trouvé sur php.net

  7. #7
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup.
    Je vais voir comment je peux l'adapter. Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JAVA:Retour à la ligne lors d'écriture dans un fichier
    Par sarra2104 dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2012, 09h10
  2. Comment préremplir un textaea avec un retour à la ligne
    Par ToniConti dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/06/2011, 11h05
  3. [PHP-JS] Supprimer les retours à la ligne
    Par defacta dans le forum Langage
    Réponses: 3
    Dernier message: 08/10/2007, 13h23
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. Réponses: 8
    Dernier message: 18/07/2005, 14h04

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