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 :

Saut de ligne indésirable


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 103
    Points : 115
    Points
    115
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ne nous montres pas ton code, nous ne pourrons pas t'aider.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 103
    Points : 115
    Points
    115
    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 : 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
    <?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
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $fich = file("/var/www/NewDialup/picsMois.txt", FILE_IGNORE_NEW_LINES);

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 103
    Points : 115
    Points
    115
    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
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    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...

Discussions similaires

  1. Saut de ligne indésirable après mode
    Par papoose dans le forum Beamer
    Réponses: 4
    Dernier message: 03/03/2009, 18h20
  2. Saut de ligne sans <br/>
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 11h21
  3. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 15h33
  4. Lecture de saut de ligne...
    Par Garion dans le forum C
    Réponses: 5
    Dernier message: 13/02/2004, 11h42
  5. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 15h01

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