[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с текстовым файлом
DarkMaster
Имеется файл, в котором находятся несколько строк. как добавить некий текст после определенного символа-маркера в этом текстовом файле? И как, для начала удалить все то, что было после этого символа?
сможет ли функция file_put_contents добавить строку так, чтобы , скажем одна ее часть была после того символа-маркера, а дургая начиналась с новой строчки.?



Спустя 11 минут, 12 секунд (19.09.2008 - 13:53) IceFrog написал(а):
Цитата(DarkMaster @ 19.9.2008, 14:42) [snapback]48776[/snapback]
Имеется файл, в котором находятся несколько строк. как добавить некий текст после определенного символа-маркера в этом текстовом файле? И как, для начала удалить все то, что было после этого символа?
сможет ли функция file_put_contents добавить строку так, чтобы , скажем одна ее часть была после того символа-маркера, а дургая начиналась с новой строчки.?


к примеру у тебя тот самый разделитель <razdel> а потом твой текст, который бы ты хотел вставить после него
Код
$file_kotoriy_otkril = str_replace("<razdel>", "<razdel> твой текст", $file_kotoriy_otkril);


Надеюсь смысл понятен, ну а принцип удаления зделал бы по такому принципу, ищет совпадение шаблона в строке, затем получает номер строки в которой найдено совпадение, затем удаление.

Я сам ламер в PHP rolleyes.gif

Спустя 46 минут, 13 секунд (19.09.2008 - 14:39) DarkMaster написал(а):
Маленький вопросик - как записать содержимое массива в файл, чтобы выглядело это так: значение1, значение2, значение3 и так далее. Тупо в строчку через запятую.

Спустя 4 минуты, 13 секунд (19.09.2008 - 14:43) IceFrog написал(а):
Используешь

while (.....

{
получение значение из массива к примеру a[0];
затем запись в конец файла.
}

Спустя 5 минут, 24 секунды (19.09.2008 - 14:49) DarkMaster написал(а):
Можешь еще раз показать, только в коде, как записать какую-либо строку в файл. а то у меня тупняк... rolleyes.gif

Спустя 7 минут, 57 секунд (19.09.2008 - 14:57) IceFrog написал(а):
Код
$handle = fopen('твой файл откуда берёшь', 'r');
while(($data = <метод>($handle," ", ' ')) !== false)
{
$rzd0 = $data[0];
$filename = "твой-файл-в-который-запись.txt";
if ( is_writeable($filename) ) :
$fh = fopen($filename, "a");
$c[0] - fwrite($fh, $rzd0);
fclose($fh); else :
print "Could not open Sfilename for writing";
endif;
}

Спустя 1 минута, 44 секунды (19.09.2008 - 14:58) IceFrog написал(а):
Исправил коечто в примере

Спустя 3 минуты, 51 секунда (19.09.2008 - 15:02) DarkMaster написал(а):
Поясни несколько моментов...
Цитата
while(($data = <метод>($handle," ", ' ')) !== false)

метод - это что?

Цитата
$c[0] - fwrite($fh, $rzd0);

странная конструкция.. можешь пояснить?

Спустя 4 минуты, 37 секунд (19.09.2008 - 15:07) IceFrog написал(а):
Цитата(DarkMaster @ 19.9.2008, 16:02) [snapback]48787[/snapback]
Поясни несколько моментов...
Цитата
while(($data = <метод>($handle," ", ' ')) !== false)

метод - это что?

Цитата
$c[0] - fwrite($fh, $rzd0);

странная конструкция.. можешь пояснить?


по 1-ому как ты получаешь этот массив например как мне посоветовали в сосед. теме
Код
while(($data = fgetcsv($handle, null, ' ')) !== false)


по 2-ому это если ты собрался ещё чтото дозаписывать после каждой строчки
к примеру
$c[0] - fwrite($fh, $rzd0);
$c[1] - fwrite($fh, "лялялял");

Спустя 2 минуты, 18 секунд (19.09.2008 - 15:09) DarkMaster написал(а):
Странно, а нельзя просто массив в цикле туда пихать? без всяких методов?

Спустя 1 минута, 58 секунд (19.09.2008 - 15:11) IceFrog написал(а):
Цитата(DarkMaster @ 19.9.2008, 16:09) [snapback]48789[/snapback]
Странно, а нельзя просто массив в цикле туда пихать? без всяких методов?


я же не знаю что конкретно тебе нужно. rolleyes.gif

Спустя 5 минут, 52 секунды (19.09.2008 - 15:17) DarkMaster написал(а):
обьясню подробнее.
файл выглядит примерно так:
[тег]
тралялял = переменная1, переменная2, переменная3, переменная4
трампампам = значение1, значение2, значение3


Вот у меня есть 2 массива значений. Мне нужно чтобы открывался данный файл и переписывались значения после равно. Они будут писаться из массивов.

Спустя 3 минуты, 59 секунд (19.09.2008 - 15:21) IceFrog написал(а):
Судя по примеру у тебя вообще обычный INI, файл и тебе просто нужно класс для работы с INI файлами.

[тараратат]
тутурум = блалалала

Спустя 3 минуты, 27 секунд (19.09.2008 - 15:24) DarkMaster написал(а):
Не угадал)) У меня hgrc-файл.

Спустя 4 минуты, 50 секунд (19.09.2008 - 15:29) IceFrog написал(а):
Ты чё не понимаешь, что у тебя file.ini просто имеет file.hgrc angry.gif просто расширение разное!

Спустя 1 минута, 45 секунд (19.09.2008 - 15:31) DarkMaster написал(а):
не суть. у меня много разных файлов, в том числе и обычные тхт-шки, в которые надо добавлять определенные значения.
Я же порошу просто рассказать как выполнять описанные мною действия.

Спустя 49 секунд (19.09.2008 - 15:32) IceFrog написал(а):
Больше я вам не помошник. ph34r.gif

Спустя 7 часов, 42 минуты, 23 секунды (19.09.2008 - 23:14) amadeus написал(а):
Угу, разговор слепого с глухим.
DarkMaster, http://ru2.php.net/manual/ru/ref.filesystem.php здесь всё про работу PHP с файловой системой, в том числе с файлами, надеюсь пощёлкаете по именам функций, почитаете и нюансы чтения из файлов и записи в них проясняться. Я не знаю в полной мере стоящей перед Вами задачи, но по этим обрывкам мне показалось, что тут проще перезаписывать файлы, чем заменять текст в определенных позициях, хотя это тоже возможно.
Для чтения такого:
[тараратат]
тутурум = блалалала
удобно использовать функцию parse_ini_file http://ru2.php.net/manual/ru/function.parse-ini-file.php, причём независимо от расширения файла, как правильно заметил IceFroq.
Для превращения массива в строку вида "значение1, значение2, значение3" не обязательно делать перебор элементов массива в цикле, удобнее воспользоваться функцией implode(',',$array) http://ru2.php.net/manual/ru/function.implode.php
IceFroq, стоит ли писать, когда едва-ли наполовину понимаешь сам о чём речь и что сам пишешь?

Спустя 2 часа, 9 минут, 19 секунд (20.09.2008 - 01:24) IceFrog написал(а):
Цитата(amadeus @ 20.9.2008, 0:14) [snapback]48827[/snapback]
IceFroq, стоит ли писать, когда едва-ли наполовину понимаешь сам о чём речь и что сам пишешь?


Я как раз понимаю о чём идёт, речь, вариант с циклом, я предложил не зная строки которую нужно было преобразовать, а потом оказалось что файл вообще типа INI!

Спустя 2 дня, 13 часов, 20 минут, 28 секунд (22.09.2008 - 14:44) DarkMaster написал(а):
Прошу прощения, если ввел вас в заблуждение!
Почитал ссылки, и много понял. Остался один вопрос, мешающий до конца все разъяснить.
Как удалить подстроку из файла, если известна позиция ее начала и конца?
Пример: есть файл с содержимым:
"тралала
тралала тралала
опа опа 222 тралала 333
777"


нужно удалить подстроку "222 тралала 333", если я знаю позиции начала и конца этой строки.

Спустя 23 часа, 26 минут, 13 секунд (23.09.2008 - 14:10) DarkMaster написал(а):
Всем спасибо! Я разобрался.


_____________
Быстрый ответ:

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