|
|
|
|
|
для: $OMEGA
(15.10.2005 в 16:16)
| |
<?php
$delstr = "$realname|^^|$download|^^|$hrefname|^^|$typename"; # строка, которую нужно удалить
$delstr .= "\r\n"; # добавляем символы переноса строки
$delfile = "sound/$dir/data.dat"; # имя обрабатываемого файла
$deltext=file($delfile);
$open=fopen($delfile, "w");
for($i=0; $i<count($deltext); $i++)
{
if($deltext[$i] != $delstr) {
fwrite($open,$deltext[$i]);
}
}
fclose($open); ?>
|
Когда-то этот скрипт работал отлично. но когда я во время тестирования поудалял штук 8 файлов, скрипт перестал работать. Что только я не делал, а строки он не удаляет... В чем может быть дело? Может, кто знает :| | |
|
|
|
|
|
|
|
для: FiX
(15.10.2005 в 13:46)
| | скрипту нужен порядковый номер строки, а не её содержание | |
|
|
|
|
|
|
|
для: DDK
(11.10.2005 в 16:16)
| | Последний скрипт работает отлично, спасибо! Вот только тсроки, типа
он не удаляет... Почему? Странно все это... | |
|
|
|
|
|
|
|
для: Alexx
(10.10.2005 в 20:44)
| | Что-то я не понял вот этого учстка кода:
<?
...
if(($i+1)!=$line){fwrite($open,$file[$i]);}
...
?>
|
а именно if(($i+1)!=$line)...
Может так:
<?
...
if($file[$i] != $line){fwrite($open,$file[$i]);}
...
?>
|
И ещё - на сколько мне не измениет память, при считывании файла в массив символы перевода каретки и переноса строки никуда не деваются... Соотв строку объявления переменной $line нужно дополнить так:
<?
$line="1"; # строка, которую нужно удалить
$line .= "\r\n"; # добавляем символы переноса строки
|
Вот по-этому у вас этот скрипт и не работал. Ибо из-за отсутствия этих символов (\r\n) строки и не совпадали при сравнении.
Таким образом конечный код у нас таков:
<?
$line = "1"; # строка, которую нужно удалить
$line .= "\r\n"; # добавляем символы переноса строки
$filename = "my_file.txt"; # имя обрабатываемого файла
$file=file($filename);
$open=fopen($filename, "w");
for($i=0; $i<count($file); $i++)
{
if($file[$i] != $line){fwrite($open,$file[$i]);}
}
fclose($open);
?>
|
Скрипт работает и выполняет свою функцию, всё проверил. Удачи ! | |
|
|
|
|
|
|
|
для: Alexx
(10.10.2005 в 20:44)
| | на счет этого скрипта - я уже пробовал его, но ничего не получилось :( Я в инете откопал такой же скрипт... А другие попробую :) | |
|
|
|
|
|
|
|
для: cheops
(10.10.2005 в 20:23)
| |
<?
$line="1"; # строка, которую нужно удалить
$file=file("my_file.txt");
$open=fopen("my_file.txt","w");
for($i=0;$i<count($file);$i++)
{
if(($i+1)!=$line){fwrite($open,$file[$i]);}
}
fclose($open);
?>
|
| |
|
|
|
|
|
|
|
для: FiX
(10.10.2005 в 19:47)
| | Для этого можно применить следующий скрипт
<?php
// Имя файла
$filename = "DATA.DAT";
// Разбиваем содержимое массива на отдельные строки
// при помощи функции file(), которая возвращает массив,
// каждый элемент которого содержит строку файла
$arr = file($filename);
// Удаляем третью строку
unset($arr[2]);
// Перезаписываем содержимое файла text.txt
$fd = fopen($filename, "w");
if($fd)
{
fwrite($fd,implode("",$arr));
fclose($fd);
}
?>
|
| |
|
|
|
|
|
|
|
для: FiX
(10.10.2005 в 19:47)
| | Сгрузить файл в массив при помощи ф-ции file(); (одна строка - один элемент массива получится), а там уже сообразишь, что с этим тебе дальше надо будет делать. | |
|
|
|
|
|
|
| Есть файл DATA.DAT; там есть следующие записи:
10/10/2005|^^|001.jpg
10/10/2005|^^|002.jpg
09/10/2005|^^|003.jpg
08/10/2005|^^|004.jpg и т.д.
|
Как удалить из этого файла строку? Допустим, надо удалить строку 9/10/2005|^^|003.jpg. Как это можно сделать? Пробовал и по номерам строк, и так, и сяк... Без помощи зачем-то не получается : / ... | |
|
|
|
|