Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
:shock: Le principe :
Pouvoir supprimer automatiquement la 1er ligne d'un ficher txt quant celui ci arrive à 30 lignes.
:shock: Pré-codé :
En cherchant un peu, j'ai trouvé ce script qui efface la premiere ligne de mon fichier txt. Ce qui me manque c'est une condition concernant le nombre de ligne à partir duquel le script à le droit d'effacer ma ligne.
<?php
Efface_Ligne_n("fichier.txt", "1", "0");
function Efface_Ligne_n($fichier, $nb, $option)
{
if (file_exists("$fichier"))
{
if($id = fopen("$fichier", "r+"))
{
--$nb;
while(!feof($id))
{
$ligne[]= fgets($id,1000000);
}
rewind($id);
for($i=0; $i<$nb; ++$i)
{
$partie.=$ligne[$i];
}
if($option==0)
{
$partie.=$retour;
}
for($i=$nb+1; $i>$nb, $i<500; ++$i)
{
$partie.=$ligne[$i];
}
fclose($id);
$id = fopen("$fichier", "w+");
fputs($id, $partie);
fclose($id);
return ok;
}
else
{
return pb_ouv;
}
}
else
{
return no_file;
}
}
?>Merci d'avance ![]()
Hors ligne
il faut que tu compte le nombre de lignes
voici comment je ferai personnellement
function nb_lignes($fichier) {
$fp = fopen($fichier, "r");
$f = file($fp);
return sizeof($f);
fclose($fp);
}ce que ca fait...
ca ouvre le fichier, mets chaque ligne dans une entrée d'un tableau
et ca retourne le nombre de lignes du tableau, donc, le nombre de lignes du fichier ![]()
Hors ligne
Merci pour ce code
JH'ai peut etre du mal mais est il possible que tu me précise comment grâce a ton code, je peus resortir le nombre de lignes sous forme de valeur, du genre $totalligne.
Pour que je mette :
if ($totalligne > 30 ) {
le code d'effacement s'effectue
}
Merci ![]()
Hors ligne
Merci encore une fois
Par contre je ne comprend pas pourquoi le script me renvoie l'erreur suivante :
Warning: file() expects parameter 1 to be string, resource given
function nb_lignes($fichier) {
$fp = fopen($fichier, "r");
$f = file($fp); // erreur à cette ligne ??????
return sizeof($f);
fclose($fp);
}Hors ligne
oups, je suis dsl :?
si tu regarde sur php.net la fonction file()
il ouvre lui meme le fichier
donc, ta fonction devra etre comme cela :
function nb_lignes($fichier) {
$f = file($fichier);
return sizeof($f);
}encore désolé
Hors ligne