rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Php: probleme de lecture de fichier

vincearoo, le jeudi 15 mai 2008 à 05:44:59
Bonjour,

Dans une page web j'utilise le code php suivant :
<?php
$seq = fopen("albums/sequence.dat.php", "r");
while (!feof($seq))
  {
  $album = fgets($seq);
  echo $album;
  $dat = fopen("albums/$album.dat.php", "r");
  list($type,$titre,$nombre,$date) = explode('|',fgets($dat));
  echo "($titre)";
  fclose($dat);
  }
fclose($seq);
?>


Le fichier "sequence.dat.php" contient une simple liste du type :
fichier_1
fichier_2
...
fichier_n


Chaque fichier "fichier_i.dat.php" comporte de multiple informations. La premiere ligne de chacun de ces fichiers est du type :
photo|peloche-i|36|jj-mm-aaaa


Ce code retourne :
fichier_1 ()fichier_2 ()fichier_3 () ... fichier_n(peloche-n)

En fait, quelle que soit l'ordre de la séquence ou le nombre d'éléments, seul le titre associé au dernier fichier de la liste est affiché ! Je ne comprends pas pourquoi...

Merci de votre aide !
Répondre à vincearoo  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Tiller, le jeudi 15 mai 2008 à 09:04:59
Je ne pense pas que cela vienne de sa, mais il faut toujours séparé les variables, certe cela fonctionne dans les quotes, mais pas au top... Très mauvaise habitude
<?php
$seq = fopen("albums/sequence.dat.php", "r");
while (!feof($seq))
  {
  $album = fgets($seq) or die('Bug 5');
  echo $album;
  if (!is_file('albums/'.$album.'.dat.php')) die('Bug 6');
  $dat = fopen("albums/".$album.".dat.php", "r") or die('Bug 1');
  $c_dat = fgets($dat) or die('Bug 2');
  list($type,$titre,$nombre,$date) = explode('|', $c_dat) or die('Bug 3');
  echo "(".$titre.")";
  fclose($dat) or die('Bug 4');
  }
fclose($seq);
?>


A part sa c'est le seul truc qui pour moi, pourrait ne pas marcher

Essaie avec les "or die" aussi
On dit que les oiseaux sont libres dans le ciel,
Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?
Répondre à Tiller

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vincearoo, le jeudi 15 mai 2008 à 09:06:15
Je crois avoir trouvé l'origine du problème ! Mais toujours pas la solution...

Lorsque le script lit le fichier "sequence.dat.php" il voit un espace a la fin de chaque ligne sauf la dernière. Du coup ma variable $album prend tour à tour la valeur "fichier_1 ", "fichier_2 ", ... , "fichier_n" et ma variable $dat pointe vers les fichiers "albums/fichier_1 .dat.php", "albums/fichier_2 .dat.php", ... , "albums/fichier_n.dat.php". Seul ce dernier existe.

Quelqu'un saurait-il comment contourner ce problème ? Mon éditeur de texte (wordpad /XP ou Kate /linux) ne voit bien sur aucun espace en fin de ligne.
Répondre à vincearoo

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Tiller, le jeudi 15 mai 2008 à 09:14:34
<?php
$seq = fopen("albums/sequence.dat.php", "r");
while (!feof($seq))
{
	$album = fgets($seq);
	echo $album;
	
	for ($i = 0; $i < 2; $i = 0)
	{
		$c1 = (substr($album, -2) == "\r");
		$c2 = (substr($album, -2) == "\n");
		$c3 = (substr($album, -2) == "\t");
		
		if (substr($album, -1) == ' ')
			$album = substr($album, 0, -1);
		
		elseif ($c1 || $c2 || $c3)
			$album = substr($album, 0, -2);
		
		else
			$i = 5;
	}
	
	$dat = fopen("albums/".$album.".dat.php", "r");
	list($type,$titre,$nombre,$date) = explode('|',fgets($dat));
	echo "(".$titre.")";
	fclose($dat);
}
fclose($seq);
?>

On dit que les oiseaux sont libres dans le ciel,
Mais la vraie liberté n'est pas celle d'avoir un endroit où se poser ?
Répondre à Tiller

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 vincearoo, le jeudi 15 mai 2008 à 09:39:03
Merci pour votre aide, ca marche impeccable !
J'ai aussi decouvert entretemps la fonction trim() qui fait le boulot sans alourdir le code.
Répondre à vincearoo
Logiciels pertinents trouvés dans les téléchargements
Télécharger IsoBuster 2.4IsoBuster - IsoBuster est un outil de récupération de CD, DVD, HD-DVD et BD prenant en charge tous les formats et tous leurs système de...Catégorie: Gravure
Licence: Freeware/gratuit
Télécharger ModPlug Player 1.46.01ModPlug Player - MODPlug est un lecteur permettant de lire des fichiers MOD, c'est-à-dire des pistes de séquenceurs (trackers), mélant des...Catégorie: Lecteurs audio
Licence: Freeware/gratuit
Télécharger Switch Sound Format Converter 1.05Switch Sound Format Converter - Switchest un convertisseur de formats audio pour Windows ou Mac, capable de convertir des fichiers audio à partir de...Catégorie: Conversion audio
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « php: probleme de lecture de fichier »