[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с TXT файлом
Страницы: 1, 2
denlam
Здравствуйте. Нужно дописать алгоритм, который берет из txt файла первую строку, сохраняет ее в переменную. Потом удаляет эту первую строку, чтобы вторая строка оказалась уже на месте первой.
Помогите пожалуйста.


$filename = "log/uinstosend.txt";
$fp = fopen($filename,"r+");

// на это место вставить алгоритм

fclose($filename);
Winston
Цитата (denlam @ 27.10.2011 - 18:18)
Нужно дописать алгоритм

Сколько платите ?
Цитата (denlam @ 27.10.2011 - 18:18)
берет из txt файла первую строку, сохраняет ее в переменную. Потом удаляет эту первую строку, чтобы вторая строка оказалась уже на месте первой.

А потом берет вторую, сохраняет в перм. и удаляет из файла ? blink.gif
В чем смысл ?
YVSIK
Winston
а смыл таков, это ему препод выдал и он вот сюды и обратился что-бы самому не париться !! wink.gif

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Winston
$filename = "log/uinstosend.txt";
$file = file($filename);
$firstLine = array_shift($file);
print_r($file);
johniek_comp
Цитата
алгоритм


сразу видно с вуза пришел...что сессия скоро?

_____________
user posted image
denlam
я хочу использовать тхт файл как базу, хранить в файле коды, каждый код на отдельной строке. при запросе к скрипту выдается один из этих кодов и удаляется из базы чтобы больше не выдавалось.
Я пробовал считать весь файл и потом оттуда взять только до "\n". Но я хочу чтобы посимвольно считывало только первую строку, удаляло ее из файла и закрывало файл.
denlam
Цитата (johniek_comp @ 27.10.2011 - 15:32)
Цитата
алгоритм


сразу видно с вуза пришел...что сессия скоро?

Я студент. Но данный вопрос не относится к ВУЗу никаким образом, делаю скрипт для себя.
m4a1fox
denlam
Скажите, а почему вы не смотрите в сторону mysql? Это же проще, да и поновее как бы... я бы посоветовал вам именно этот подход, ибо он самый надежный!
denlam
Цитата (Winston @ 27.10.2011 - 15:25)
$filename = "log/uinstosend.txt";
$file = file($filename);
$firstLine = array_shift($file);
print_r($file);

Спасибо, считывание теперь происходит. Только остается два вопроса:
1) Почему он игнорирует первую строчку при считывании?
2) Как теперь удалить считанную строку при том, чтобы остальной файл остался цельным?



P.S. Всегда работал через MYSQL и было удобно, поэтому с тхт не знаком. Но скрипт выполняет всего лишь одну функцию и не хочется из-за него создавать новую таблицу, хочу понять работу с тхт.
m4a1fox
А! Ну тогда вопрос снимается! Удачи!
Winston
Цитата (denlam @ 27.10.2011 - 18:47)
Почему он игнорирует первую строчку при считывании?

Что значит игнорирует ? Он ее удаляет с помощью array_shift
Цитата (denlam @ 27.10.2011 - 18:47)
Как теперь удалить считанную строку при том, чтобы остальной файл остался цельным?

$filename = "log/uinstosend.txt";
$file = file($filename);
$firstLine = array_shift($file);
file_put_contents($filename, implode("\n", $file));
denlam
Может быть я неправильно выразился или вы меня неправильно поняли. Попробую обяъснить задачу нагляднее.
1) Скрипт берет из файла первую строчку и выдает ее.
2) Удаляет из файла первую строчку.

То есть, допустим есть файл, содержащий такой текст:
Цитата

12345678
53456789
34567890
23455234

Надо чтобы скрипт выдал строчку "12345678" и перезаписал файл, оставив там:
Цитата

53456789
34567890
23455234
Игорь_Vasinsky
m4a1fox
Цитата
Скажите, а почему вы не смотрите в сторону mysql?

я бы так вопрос поставил:
Скажите, а почему вы не смотрите в сторону MySQLi ? ;)

ТС

Цитата
1) Скрипт берет из файла первую строчку и выдает ее.


При каждом запуске?

Что то вроде этого?

if($file = file("log/uinstosend.txt"))
echo "Cant open file!";
else
{
echo $file[0];
unset($file[0]);
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
denlam
Цитата (Игорь_Vasinsky @ 27.10.2011 - 16:04)
m4a1fox
Цитата


Что то вроде этого?

if($file = file("log/uinstosend.txt"))
  echo "Cant open file!";
else
{
    echo $file[0];
    unset($file[0]);
}

Выдает первую строку верно, но не удалет строку из файла.
Winston
denlam
Тогда так наверное
$filename = "log/uinstosend.txt";
$file = file($filename);
echo array_shift($file);
file_put_contents($filename, implode("", $file));
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.