Problème PHP

Fermé
J-L03 - 16 avril 2010 à 09:14
 J-L03 - 17 avril 2010 à 12:22
Bonjour,


voilà mon problème:
j'ai un fichier host à partir duquel je récupère toutes les lignes qu'il contient et je stocke le tout dans un tableau PHP. Cependant, certaines lignes sont "vides" (après différents tests j'ai remarqué qu'elle contenait en fait le code ASCII 13 qui correspond au CR). Je veux donc faire un test de telle sorte à trouver chaque ligne vide.

J'utilise donc le code suivant:

for ($index=0; $index<$sizeof_tablignes; $index++)
{
if ($tab_lignes[$index] == chr(13))
{
echo "true pour la ligne ".$index." ce qui correspond à ".$tab_lignes[$index]."<br />";
}
else
{
echo "false pour la ligne ".$index." ce qui correspond à ".$tab_lignes[$index]."<br />";
}
//echo $index."<br />";
}

J'ai essayé de faire un test sur '\r', sur chr(13), sur une variable dans laquelle je mettais le code chr(13) mais rien y fait.

Est-ce que quelqu'un aurait une idée svp?

Merci.

A voir également:

4 réponses

billwate Messages postés 48 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 19 avril 2010 28
17 avril 2010 à 01:10
Je suppose que tu obtiens ton tableau par la fonction explode de php :
si tu le fais par : explode("\n", $donnee_lue); alors
fais plutot : explode("\n\r", $donne_lue);
Les lignes vides seront vraiment vides.

par précaution il faudra tester trim($tab_lignes[$index])
au cas ou un ou des espaces traineraient !!!
1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 avril 2010 à 16:22
Bonjour,

Je ne sais pas si ça t'aidera, mais pour ce qui est de tester le début d'une ligne pour le traitement d'un fichier, dans l'un des mes sites j'avais tout simplement fais des tests comme suit:

<?php
...

	function startswith($hay, $needle) {
		return $needle === $hay or strpos($hay, $needle) === 0;
	}
	function endswith($hay, $needle) {
	    return $needle === $hay or strpos(strrev($hay), strrev($needle)) === 0;
	}
...

$line = "... juste un exemple, code non testé ...";
if ( startwith($line,'\n') ){
  echo "saut de ligne en début de ligne";
}



Tu peux appliquer ça à n'importe quel caractère susceptible d'être un saut de ligne ('\n', '\r', etc.)

0
Merci :) !
0
Oui je récupère bien mon tableau par la fonction explode. J'essaierai ça ce lundi.
En tout cas merci pour ta réponse. :)
0