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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновить строку в файле, Помогите решаить задачу 
V
    Опции темы
CyClon
Дата 3.3.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 4



Перед мной поставлена доволно-таки интерестная задача: Мне нужно обновить строку в файле... В общем что мы имеем? Мы имеем файл, в котором записаны некоторые данные, разделенные знаком |. На одну строку - одна ячейка скажем... В общем есть что-то вроде:

1|http://yandex.ru|Поисковая система|20060303

Как вы уже могли догадаться мне нужно обновлять число 20060303 на текущую дату ( date("Ymd") ). В общем. помогите, как обновить. Просто такая тема - если существует переменная $_GET['sid'], то нужно обновить строку с указанным ID (Первый символ в строке), а именно нужно обновить дату. В MySQL я это делал так:

Код
if (!empty($_GET['sid'])) {
    $check_query = mysql_fetch_array(mysql_query("SELECT `sid` FROM `slaed_aser` WHERE `sid`='".$_GET['sid']."'"));
    if ($check_query) {
        mysql_query("UPDATE `slaed_aser` SET `update` = '".date("Ymd")."' WHERE `sid` = '".$_GET['sid']."' LIMIT 1");
    }
}


Подобное нужно сделать и с файлами, включая проверку на сущестование ID. Пересчитывать строки - не самый идеальный вариант, ведь записи могут удаляться.


--------------------
user posted image
PM   Вверх
Bangladesh
Дата 3.3.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AsBest
***


Профиль
Группа: Завсегдатай
Сообщений: 1089
Регистрация: 4.9.2004
Где: Калининград

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



а строка в файле всегод одна? или там много таких разделённых?


--------------------
ок
PM MAIL WWW ICQ Skype   Вверх
-=Ustas=-
Дата 3.3.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

Репутация: 6
Всего: 69



CyClon, ну тут же элементарно! Читаешь построчно файл, в цикле разбиваешь строку по твоему разделителю, проверяешь первый элемент массива на совпадение с в текущим sid-ишником, если совпало - значит изменяешь эту строку и сохраняешь файл обратно.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
CyClon
Дата 4.3.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 4



Да я уже понял в принципе сам...

Код
<?php

$file = file("file.txt");

foreach ($file as $string)
{
    $update = explode("|", $string[14]);
    $string[14] = $update[0]."|".$update[1]."|".$update[2]."|20060304";
}

$file = fopen("file.txt", "w");
fputs($file, $string);
fclose($file);

?>


Примерно так... набрал на скорую руку, за код не ругать smile
Добавлено @ 19:42
Цитата
проверяешь первый элемент массива на совпадение с в текущим sid-ишником


А до этого не допер сам, блинsmile Спасибо за хелп.


--------------------
user posted image
PM   Вверх
Эрмитаж
Дата 8.3.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



explode();
PM MAIL   Вверх
Guedda
Дата 9.3.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Что explode?
Это функция для разбиения строки в массив.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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