Удаление строки из файла

Печать RSS
29

Автор
Землянин
0
У меня уже голова кипит...
Подскажите как удалить строку из файла.
Я тут написал кое что, но оно не работает. Синтаксических ошибок нет, а строку не удаляет!
Код:
<?php
$id=(int)$_GET['id'];
$line=(int)$_GET['line'];
if($line>0){ $line=$line-1;}
$f=file("db/$id.list");
unset($f[$line]);
//echo $f[$line];
//echo $f[1];
fputs("db/$id.list",$f);
?>
Автор
Землянин
0
Проверял. Строка только виртуально удаляеться, а запись не происходит...

Господин ПЖ
0
<?
//------------------- Функция удаления строк(и) из файла --------------------//
function delete_lines($files, $lines){

if ($lines!==""){
if (file_exists($files)){

if(!is_array($lines)){

$file=file($files);
$fp=fopen($files,"a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
if (isset($file[$lines])){unset($file[$lines]);}
fputs ($fp, implode($file));
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp); 
unset ($lines);

} else {

$file=file($files);
$fp=fopen($files,"a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
foreach($lines as $val){ 
if (isset($file[$val])){unset($file[$val]);}
}
fputs ($fp, implode($file));
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp); 
unset ($lines);

}}}
}
Автор
Землянин
0
3. Vantuz, сейчас попробую спасибо! Но хотелось бы знать что не так с моим кодом?smile

Господин ПЖ
0
4. StingerIce, ну во-первых строка может иметь и номер ноль,
во-вторых ты пытаешься записать массив $f у тебя даже если и запишется то слово array
в-третьих прежде чем записать файл нужно сперва открыть, ну и закрыть потом естественно
M

Пацак
0
fputs -- Псевдоним функции fwrite()

А это означает что в качестве первого аргумента в этой функции должен идти ресур. А ресурс возвращаеться функц fopen();
А ты передал в качестве первого аргумента строку(в которой адрес файла) - это не правильно.
Если хочешь все одной функцией то вернее будет использовать функцию file_put_contents
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск