Recherche fonction ou methode particulière

James
Invité n'ayant pas de compte PHPfrance

01 avr. 2010, 14:37

Bonjour à vous tous
Je cherche une fonction ou un moyen d'executer un script, présent dans une boucle, tant que ce script rajoute des lignes à mon fichier de sortit. Une fois que le dernier tour de boucle ne rajoute plus de ligne, j'aimerai qu'il sorte de la boucle.

Pour compter le nombre de ligne de mon fichier de sortit j'avais pensé à un "file" de mon fichier et un "count" du tableau ainsi créé.

$dad=file($pr);
$ligne=count($dad);
while($ligne > $ligne_precedente){
          //
        mon script
         //
        $ligne=$ligne_precedente;
}

Mais je ne voie pas trop comment m'y prendre.

ViPHP
AB
ViPHP | 5818 Messages

01 avr. 2010, 16:34

Tu veux faire quoi exactement, écrire dans un fichier texte ?

Mammouth du PHP | 672 Messages

01 avr. 2010, 16:37

Bonjour.

Il s'agit d'un script que tu veux faire éxécuter (un fichier PHP) ?

Si c'est bien un script :
$ligne_ajoutee = true;
while ($ligne_ajoutee) {
   include('script.php');
}
Et dans ton script qui rajoute des lignes tu testes si effectivement il a rajouté une ligne :
if ($JaiRajouteUneLigne) {
   $ligne_ajoutee = true;
}
else {
   $ligne_ajoutee = false;
}

James
Invité n'ayant pas de compte PHPfrance

02 avr. 2010, 11:45

Bonjour à tous

Alors voilà comment je m'y suis pris

                $top=complete($mx);
		$dad=file($top);
		$new=count($dad);
		echo "<br \>$new<br \>";
		echo "<br \>$nb_ligne<br \>";
		echo "toto";
		while($new>$nb_ligne){
			$nb_ligne=$new;
			$top=complete($top);
			$dad=file($top);
			$new=count($dad);
		}

		echo "c'est la fin";

Cela fonctionne mais pas exactement comme je le souhaiterai, c'est à dire la première fois que je lance mon script, il note bien la différence de ligne (visible grace au echo) mais ne rentre pas dans la boucle while, ce n'est que au second lancement, alors que je n'ai rien changé au script, qu'il me l'execute correctement.
Je ne comprend pas trop là.

Eléphanteau du PHP | 27 Messages

02 avr. 2010, 12:27

et un truc de ce type ne serait pas plus simple ?

Code : Tout sélectionner

$i = 0; while($ligne > $ligne_precedente){ // mon script // $ligne=$ligne_precedente; $i++; } echo 'Nombre de lignes .'$i ;
Développeur PHP à temps perdu ...
PHP Maximus CMS , un cms plus petit PHP Minimus, un cms minimaliste PHP Nanomus, un pare feu pour votre site PHP Firewall

ViPHP
ViPHP | 5462 Messages

02 avr. 2010, 15:48

pas besoin de faire un while pour parcourir un array, utilise foreach ca être plus simple