Suppression de ligne

Neokrome -  
 Neokrome -
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);
	
   ?>
A voir également:

2 réponses

Utilisateur anonyme
 
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
Neokrome
 
Super, merci beaucoup!
Etonnant que PHP.net n'aille pas mis une fonction pour faire ca x)
A bientot!
0