Suppression de ligne

Fermé
Neokrome - 30 avril 2013 à 16:22
 Neokrome - 30 avril 2013 à 18:28
Bonjour,

Je suis face à un problème depuis ce matin!
Je suis novice en php.
J'ai un fichier log.txt qui contient un certains nombre d'entrée, j'aimerai faire un script PHP qui determine le nombre de ligne, et si elle sont supérieur à 30, il supprime la 1ere entrée, et ainsi de suite (par une boucle While)

<?php
	 error_reporting(0);									
	$fichier = fopen("log.txt", "r"); 
	$contenu_fichier = file_get_contents('log.txt');
	$nb_ligne = substr_count($contenu_fichier, "\n");
	echo $nb_ligne;

	while ($nb_ligne < 30)
	{
    unset($nb_ligne[1]); 

	}
	fclose ($fichier);
	
   ?>

2 réponses

Utilisateur anonyme
30 avril 2013 à 17:24
Salut salut,

Tu n'es pas très loin mais il faut réécrire dans le fichier, et il faut que tu supprimes plus d'une ligne si plus d'une ligne ce sont insérées. Avec ça ça devrait fonctionner :

$filePath = 'log.txt';
$lignes = file($filePath); 

$count=count($lignes);
if($count>30){
//recherche le nombre de ligne à supprimer
	$rslt=$count-30;
	for($i=0;$i<$rslt;$i++){
	unset($lignes[$i]);
	}
}

$str="";
foreach($lignes as $value){
	$str.=$value;
}
$handle = fopen($filePath, 'w+'); 
fwrite($handle, $str); 
fclose($handle); 

0
Super, merci beaucoup!
Etonnant que PHP.net n'aille pas mis une fonction pour faire ca x)
A bientot!
0