+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 89
    Points : 63
    Points
    63

    Par défaut Saut de ligne indésirable

    Bonjour,

    Voici le souci : j'ai un fichier texte que je remplis quotidiennement avec un script PHP (crontab). Voici le contenu de ce fichier :

    Code :
    1
    2
    3
    23
    20 28 21 26 8 2 27 29 32 25 26 10 4 1 1 10 9 7 3 2 3
    2 8 10 15
    Lors de l'exécution du script, la première valeur (1ère ligne) est insérée à la fin du fichier. Affichage désiré :

    Code :
    1
    2
    3
    0
    20 28 21 26 8 2 27 29 32 25 26 10 4 1 1 10 9 7 3 2 3
    2 8 10 15 23
    Or, lors de cet ajout, un saut de ligne s'effectue juste avant, alors qu'il n'y a rien dans mon code qui spécifie un saut de ligne. Affichage actuel :

    Code :
    1
    2
    3
    4
    0
    20 28 21 26 8 2 27 29 32 25 26 10 4 1 1 10 9 7 3 2 3
    2 8 10 15 
    23
    Je voudrais donc trouver d'où cela vient et supprimer définitivement ce saut de ligne. Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 437
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 437
    Points : 31 235
    Points
    31 235

    Par défaut

    Si tu ne nous montres pas ton code, nous ne pourrons pas t'aider.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 89
    Points : 63
    Points
    63

    Par défaut

    Voici le script PHP en question. Si vous ne comprenez pas le rôle d'une des variables, faites le moi savoir.

    Code php :
    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
    <?php
    	include 'connexion.php';
     
    	$sql = "SELECT COUNT(DISTINCT username) FROM radacct WHERE acctstoptime IS NULL";
    	$req = mysqli_query($connect, $sql) or die('Erreur SQL : '.mysqli_error());
    	while ($row = mysqli_fetch_row($req))
    	{
    		$actuel = $row[0];
    	}
     
    	$pic = fopen("/var/www/NewDialup/picsMois.txt", "r+");
    	$fich = file("/var/www/NewDialup/picsMois.txt");
     
    	if (date("H") == "00" && date("i") == "00")
    	{
    		$curseur = 0;
    		for ($i = 0; $i < count($fich); $i++)
    		{
    			$curseur = $curseur + strlen($fich[$i]);
    		}
    		fseek($pic, $curseur);
    		fwrite($pic, $fich[0]." ");
    		str_replace($fich[0], "0\n", $fich);
     
    		if (date("d") == "01")
    		{
    			$fich = substr($fich, 0, -1);
    			fwrite($pic, "\n");
    		}
    	}
     
    	if ($actuel > $fich[0])
    	{
    		str_replace($fich[0], "", $fich);
    		fwrite($pic, $actuel."\n");
    	}
     
    	fclose($pic);
    ?>

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    5 227
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 5 227
    Points : 10 008
    Points
    10 008

    Par défaut

    Sauf erreur de ma part, file() ajoute systématiquement des sauts de ligne à la fin des lignes. Pour éviter cela, il faut utiliser le flag FILE_IGNORE_NEW_LINES.
    Donc :
    Code :
    $fich = file("/var/www/NewDialup/picsMois.txt", FILE_IGNORE_NEW_LINES);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

    Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2011
    Messages : 89
    Points : 63
    Points
    63

    Par défaut

    Non aucun changement. Cependant, j'ai recréé mon fichier texte sous Windows et je l'ai inséré sous Linux et le saut de ligne en question a disparu !

    Ce serait donc un problème d'encodage du fichier qui était en utf-8 ... Il faudrait que je le passe en ASCII mais je vois pas comment sur le coup.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    5 227
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 5 227
    Points : 10 008
    Points
    10 008

    Par défaut

    Plus qu'un problème d'encodage, c'est peut-être un problème de type de saut de ligne (entre \r\n sous Windows et \n sous Linux...)
    Ou alors ton fichier d'origine avait une ligne supplémentaire vide à la fin...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

    Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •