Подскажите как удалить определённую строку..

Печать RSS
253


Господин ПЖ
0
к тому же в функции delete_lines можно удалять строки по одной если номер известен и сразу несколько к примеру delete_lines('uz.dat', array(0,6,14));

2000 лет д.н.э.
0
Лучше бы обьяснилиsmile
1. Открыл файл по строчно, получил массив строк (file())
2. Удалил из полученого массива нужную тебе сроку, (unset())
2. Записал файл по новой (смотри код вантуза, (или fwrite()) )

Голубые штаны
0
Поднимаю тему по причине актуальности.
Подскажите на свежую голову:
Мне нужно сделать проверку наличия ячейки в одной из строк файла, и если ячейка не найдена, то выдать ошибку.
Обычно я делаю так:
$file=file($sitedatafile); 
$total = count($file);
for($i=0; $i<$total; $i++){
$data = explode('|',$file[$i]);
if($data[3]==$msnum){
ВЫПОЛНЯЕТСЯ СКРИПТ
} else {echo' Такого номера изображения не существует'; exit;}}
// $sitedatafile - файл, где выполняется поиск
// $msnum - содержимое ячейки, которое нужно найти
Или второй вариант
$string = search_string($sitedatafile, $msnum, 10);
if ($string) {
ВЫПОЛНЯЕТСЯ СКРИПТ
} else {echo' Такого номера изображения не существует'; exit;}
// переменные те же
Обычно использую один из этих вариантов,
сейчаз чего-то в первом случае работает только с первой строкой (остальные не ищет),
во втором случае вообще ничего не отображает сразу после if ($string) {
Подскажите!

2000 лет д.н.э.
0
$file = file('text.txt');
foreach($file as $id=>$line){
$data = explode('|',$line);
if($data[3]==$searchVar){
$result = $id;
}}
if(isset($result)){
echo' result in '.$result.' line';
}
типа того можно.
В твоем первом варианте неверно то что в случае если в первой строке нет совпадения то ты останавливаешь скрипт. Надо просто продолжать цикл до конца а у тебя ехит; стоит.

Голубые штаны
0
Спасибо, sanzstez помог
С

Малиновые штаны
0
Незачто, обращайся )

Голубые штаны
0
Vantuz (31 Октября 2009 / 17:57)
пользуйся лучше моими функциями,их можно множество раз использовать
$string = search_string("uz.dat", $number, 1);
if ($string) {
delete_lines("suz.dat", $string['line']);
}
код очень короткий, у меня открывается в мягком режиме a+ все проверки и блокировки.

К тому же в функции delete_lines можно удалять строки по одной если номер известен и сразу несколько к примеру delete_lines('uz.dat', array(0,6,14));

Саня, посоветуй, как мне выбрать из файла все строки с одинаковым значением определенной ячейки (например, ячейка 0 - имя юзера) и удалить их? Я так понимаю, delete_lines не подойдет, т.к. я не знаю номера строк?

Господин ПЖ
0
сперва в цикле пройдись запиши в массив номер строк где встречается совпадение, а потом уж delete_lines и передай массив
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск