Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ищу скрипт. 
:(
    Опции темы
Osrus
Дата 14.12.2004, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 4.12.2004

Репутация: нет
Всего: 3



Ищу скрипт, функция - удаление из текстовго файла по id определенного сообщения... Нужен конкретный пример.


--------------------
Шагнул на скользкий путь красноглазия...
Long live Socialism!
PM MAIL ICQ   Вверх
IZ@TOP
Дата 14.12.2004, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Для того чтобы удалять из файла по ид, нужно его структуризировать. А структура бывает разной, я приведу один пример который подойдет для структуры такого вида:
Цитата
id [separator] данные1 [separator] данные n...

Код

<?php

function UnsetLinesFromFile($FilePath, $Idents, $Separator) {
$Lines  = file($FilePath);
// Считываем строки в из файла в переменную.
$Size  = sizeof($Lines);
// Размер полученых строк
if(is_array($Idents)) {
 // Если в качестве удаляемых идентификаторов строк послан
 // массив
 for($itr = 0; $itr < $Size; $itr++) {
  $ex   = explode($Separator, trim($Lines[$itr]));
  // Разбиваем строку по передаваемому разделителю через переменную $Separator
  if(!in_array($ex[0], $Idents)) $NewLines = $Lines[$i];
  // Заносим в новый массив все строки в которых id не равен передаваемому
 }
} else {
 // Если в качестве удаляемых идентификаторов строк послан
 // один идентификатор
 for($itr = 0; $itr < $Size; $itr++) {
  $ex   = explode($Separator, trim($Lines[$itr]));
  // Разбиваем строку по передаваемому разделителю через переменную $Separator
  if($ex[0] != $Idents) $NewLines = trim($Lines[$i]);
  // Заносим в новый массив все строки в которых id не равен передаваемому
 }
}
$fh   = fopen($FilePath, "w");
flock($fh, LOCK_EX);
fputs($fh, implode("r\n", $NewLines);
flock($fh, LOCK_UN);
fclose($fh);
}

?>


Пример использования:
Код

<?php
// ...
// Удаляем строку с идентификатором переданным из формыметодом POST.
UnsetLinesFromFile('db/messages.db', $_POST['delete_id'], '|');
// ...
?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Osrus
Дата 15.12.2004, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 4.12.2004

Репутация: нет
Всего: 3



IZ@TOP Хм... Спасибо, кое-что прояснил ...


--------------------
Шагнул на скользкий путь красноглазия...
Long live Socialism!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.