function clstr($id,$file,$file2){
if ($id != "") {
$id--;
for($i=0;$i<sizeof($file);$i++){
if($i==$id) {
unset($file[$i]);
echo $file[$i];//выводит undefined
}
fwrite($file2,implode("",$file));
}
}
};
В файле без изменений. В чем ошибка?
Спустя 28 минут, 1 секунда (16.08.2010 - 19:31) linker написал(а):
unset($file[$i]);Правильно выводит, вы э тока что удалили этот элемент массива. Сделайте так
echo $file[$i];//выводит undefined
function clstr($id,$file,&$file2){}, но это не спасет отца русской демократии, нужно еще видимо
ftruncate($file2, 0);Да, забыл, цикл тут не нужен
fwrite($file2,implode("",$file));
function clstr($id,$file,$file2)Плюс, тут еще зависит, в каком режиме открыт файл.
{
if (!isset($file[$id])) return;
unset($file[$id]);
ftruncate($file2, 0);
fwrite($file2,implode("",$file));
}
Спустя 6 часов, 11 минут, 18 секунд (17.08.2010 - 01:42) Guest написал(а):
Стало еще интереснее:он удаляет строку, но при этом оставляет перед второй(теперь уже первой) в файле несколько пробелов. Почему это происходит и как это убрать? Пробовал склеивать файл через перенос строки, он его увеличивал пустыми строками.
Спустя 6 часов, 17 минут, 2 секунды (17.08.2010 - 07:59) linker написал(а):
Как файл открывает и читается?
Спустя 2 часа, 39 минут, 17 секунд (17.08.2010 - 10:38) Guest написал(а):
С помощью 'r+'. Но я вообще все по-другому сделал-написал функцию, переписывающую строку файла:
function rewrite($id,$file,$file2,$newwrite)
{
$file[$id]=$newwrite."\r\n";
fwrite($file2,implode("",$file));
}
Спустя 1 час, 10 минут, 50 секунд (17.08.2010 - 11:49) linker написал(а):
Ну а теперь посмотри в конец своего перезаписанного файла и найдешь там кашу. Если там пробелы, значит они там были изначально.