Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Тагил
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 25

Повытаскивать куски текста из txt и сохранить из в разные файлы!

08.01.2013, 06:13. Показов 1870. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть небольшие трудности с php, поэтому прошу помощи у вас.
Имеем текстовый файл с контентом, обрамленным тегами:
#title#Бизнес план комунальной организации#title#
......
#content# Если вы решили открыть магазин обуви, то одним из самых удобных вариантов... #content#
.......
#tags#Автобизнес, Бизнес план фотостудии, Бизнес план парикмахерской...#tags#
и т.п.

Необходимо по вытаскивать куски текста и сохранять их в различные тхт файлы...к примеру текст обрамленный тегами #title##title# нужно сохранить в файл title.txt, #content##content# - в content.txt и так далее...
Как это сделать с помощью PHP?
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2013, 06:13
Ответы с готовыми решениями:

Пронумеровать (с интервалом 1000) куски определенного текста в файле txt
Здраствуйте, помогите решить: нужно пронумеровать (с интервалом 1000) куски определенного текста в файле txt.

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

Запись строк в разные .txt файлы
Доброго времени суток! Очень хочу сделать запись строк в разные .txt файлы. Попытаюсь объяснить подробнее: Заполняем 1-ый массив...

12
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
08.01.2013, 06:30
Может рациональней использовать БД и хранить данные там?
0
 Аватар для Belkin-VD
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
08.01.2013, 06:58
1.) Содержимое файла берете так:

PHP
1
$input=file_get_contents('input.txt');
или можно построчно (не в Вашем случае)
$input=file('input.txt');

2.) Вытаскиваете то что хотите с помощью
PHP
1
preg_match()
3.) И после определенных манипуляций - сохранеете, куда хотите:

PHP
1
2
3
4
   $filename='output.txt';
   $open=fopen($filename, 'w');  //открываете
   fwrite($open, $input);   //записываете
   fclose($open);   //закрываете
0
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
08.01.2013, 07:13
Можно сделать так. Надеюсь записей у вас там не over9000 ))).

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$file="file.txt";
 
function save($array, $filename)
{
if(IsSet($array, $filename))
{
$fp = fopen($filename, "a+");
foreach($array as $key=>$value)
fwrite($fp, "$value");
fclose ($fp);
echo "Файл $filename успешно создан.</br>";
}
} 
 
if(file_exists($file))
{
echo "Начинаю разбивать файл. Пожалуйста подождите...</br>";
$fp = fopen($file, "rb");
while(!feof($fp))
{
$string=fgets($fp);
if (strpos($string, "#title#")!==FALSE)
$arr_title[]=$string;
if (strpos($string, "#content#")!==FALSE)
$arr_content[]=$string;
if (strpos($string, "#tags#")!==FALSE)
$arr_tags[]=$string;
}
fclose ($fp);
 
save($arr_title, "title.txt");
save($arr_content, "content.txt");
save($arr_tags, "tags.txt");
}
else
echo "Исходный файл не найден!";
 
?>
1
 Аватар для Тагил
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 25
08.01.2013, 15:26  [ТС]
Цитата Сообщение от mack_91 Посмотреть сообщение
Можно сделать так. Надеюсь записей у вас там не over9000 ))).

Хорошо,спасибо большое, а если немного усложним задачу:

Есть файл с таким списком:
урл1;логин1;пароль1:\kontent\kino(папк а со статьями)
урл2;логин2;пароль2:\kontent\kino(папк а со статьями)
...
в папке D:\kontent\kino лежат txt файлы с содержимым,которое мы разобрали чуть выше

Как сделать чтоб с папки D:\kontent\kino выбирался рандомный (не подряд) txt файл и происходило то,что описано выше....?

Добавлено через 7 минут
upd
Еще одно, код данный мне выше режет файл,все работает,еще раз спасибо,но записывает содержимое в файлы с окруженными тегам
#title#Библиотека структура бизнес плана#title#
, а надо чтоб был чистый текст,т.е. теги #title##title# вырезались.....
как?
0
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
08.01.2013, 15:29
есть функции, которые читают содержимое папки и выводят список этого содержимого.
Например функция выдала массив $filesinfolder, в котором находится имена файлов в вашей папке.
тогда узнаете, сколько в массиве строк, генерируете рэндомное число и поставляете в аргумент массива. Например у вас 100 файлов в папке.
PHP
1
2
$rand=mt_rand(0, 99);
$file=$filesinfolder[$rand];
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
08.01.2013, 15:31
не проще вырезать текст? slice, substring или те же regex ?
0
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
08.01.2013, 15:31
функция str_replace() поможет избавиться от текста вида #title#
2
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
08.01.2013, 16:25
Цитата Сообщение от Тагил Посмотреть сообщение
урл1;логин1;пароль1:\kontent\kino(папка со статьями)
если именно такого формата - логичнее и удобнее будет использовать функции для работы с csv http://www.php.net/fgetcsv
1
 Аватар для Тагил
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 25
08.01.2013, 19:20  [ТС]
Цитата Сообщение от mack_91 Посмотреть сообщение
функция str_replace() поможет избавиться от текста вида #title#
Это где,куда и как?)

и еще: строки с тегами #title#,#tags# и прочие идут нормально, а вот тег с тегом #content# упорно не хочет работать, т.е. сохраняются только теги #content##content# , а между ними ничего нет,пустота......хотя между ними в исходном файле идет текст форматированы html
0
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
08.01.2013, 20:07
Тагил, Странно. У меня все 3 тега работали.
PHP
1
$arr_title[]=str_replace("#title#", "", $string);
Для остальных соответственно.

HTML5
1
<br>*</br>
Кто вас научил такому?

Может попробовать сначала избавиться от закрывающего?, а потом от открывающего?

PHP
1
if (strpos(str_replace("</br>", "", $string), "<br>")!==FALSE)
1
 Аватар для Тагил
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 25
08.01.2013, 20:35  [ТС]
Цитата Сообщение от mack_91 Посмотреть сообщение
Может попробовать сначала избавиться от закрывающего?, а потом от открывающего?
Избавляться не от чего не надо,вот в общем есть текстовый файл с содержимым:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#title#Бизнес в бельгии холдинг#title#
 
 
<br>
<b>Год:</b> 2011 г.<br>
<b>Разработчик:</b> ФОРМУЛАКС<br>
<b>Язык:</b> Русский<br>
<b>Ожидаемый срок окупаемости:</b> 41 месяцев<br>
<b>ЧП:</b> Сковпень В. П.<br>
<b>Объем инвестиций:</b> 41 т. USD<br>
<b>Регион:</b> Санкт-Петербург<br>
</br>
 
 
#content#
Проекты развития малого бизнеса, статьи  срок окупаемости бизнес проекта  программа поддержки предпринимательства в московской области набирает обороты. Первые еventфирмы, предложившие клиентам организацию праздников, появились в Москве в середине...
<!--more-->
<p align="justify">Проекты развития малого бизнеса, статьичных дней, подходящих для загара мало, а придать своей коже золотистый оттенок........
.... Лотерейный билет она купила за 1,5 фунта стерлингов. <br></p><p align="justify"><br></p>
#content#
#categories##categories#
#tags#Бизнес план производства Мюсли, Бизнес план производства туалетной бумаги, Бизнес план свинофермы, Бизнес план свадебного салона, Бизнес план ресторана, Бизнес план торговли по каталогам#tags#

Все это мы разобрали,кроме
HTML5
1
2
3
4
5
6
7
8
9
<br>
<b>Год:</b> 2011 г.<br>
<b>Разработчик:</b> ФОРМУЛАКС<br>
<b>Язык:</b> Русский<br>
<b>Ожидаемый срок окупаемости:</b> 41 месяцев<br>
<b>ЧП:</b> Сковпень В. П.<br>
<b>Объем инвестиций:</b> 41 т. USD<br>
<b>Регион:</b> Санкт-Петербург<br>
</br>
этот кусок должен тоже отдельно вырезатся и сохранятся в отдельный файл....как?

Добавлено через 4 минуты
content так и не сохраняется
0
 Аватар для mack_91
121 / 66 / 9
Регистрация: 15.08.2012
Сообщений: 266
09.01.2013, 17:03
Цитата Сообщение от Тагил Посмотреть сообщение
Избавляться не от чего не надо,вот в общем есть текстовый файл с содержимым:
content так и не сохраняется
Видимо потому-что он не в одну строку, а в несколько строк. Нужно как-то преобразовать строку.

Что касается данного куска кода:
HTML5
1
2
3
4
5
6
7
8
9
<br>
<b>Год:</b> 2011 г.<br>
<b>Разработчик:</b> ФОРМУЛАКС<br>
<b>Язык:</b> Русский<br>
<b>Ожидаемый срок окупаемости:</b> 41 месяцев<br>
<b>ЧП:</b> Сковпень В. П.<br>
<b>Объем инвестиций:</b> 41 т. USD<br>
<b>Регион:</b> Санкт-Петербург<br>
</br>
Тут я думаю тоже хитрость применить надо и склеить все в одну строку. Ведь построчно удобней делать выборку и вставлять данные в файл. Но еще раз повторю, лучше заносить данные не в файл, а в Базу Данных.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2013, 17:03
Помогаю со студенческими работами здесь

Как сохранить данные из баз SQLite в разные файлы?
В папке есть несколько файлов с базой sqlite мне нужно прочитать каждый файл и записать именно из каждой папки те данные в новый файл. ...

Как считать TXT и разбить на куски?
Добрый день Есть TXT-файл с задачей, где сначала идёт текст задачи, потом решение и ответ. Эти части разделены &quot;|&quot;, как...

Разделить огромный txt файл на куски и поместить в различные книги excel
Здравствуйте, уважаемые форумчане! У меня есть огромный файл txt, который нужно разделить на части и эти части поместить в книги excel....

Разбить входной файл, например: xatadu.txt на 2 выходные файлы:1.txt и 2.txt , записав в 1 нечетные байты, а в 2 четные
Разбить входной файл, например: xatadu.txt на 2 выходные файлы:1.txt и 2.txt , записав в 1 нечетные байты, а в 2 четные. И записать...

Деление текста на куски
Всем доброго дня! Необходимо разделить текст на куски, по 2000 символов. Навоял такой код....по логике должен работать...Первые два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru