Есть нное количество тхт файлов, нужно посредством пхп выдернуть из каждого файла в папке 15 первых символов и поместить в другой тхт, причем так, что бы каждый выдернутый текст из каждого файла был с новой строки в этом фале. пример: В папке находятся 3 файла (к примеру) 1 файл тхт содержит: текст1тексте1тексте1тексте1тексте1тексте1тексте1тексте1тексте1тексте.... 2 файл тхт содержит: текст2текст2текст2текст2текст2текст2текст2текст2текст2текст2текст2текст.... 3 файл тхт содержит: тектекст2тектекст2тектекст2тектекст2тектекст2тектекст2тектекст2тектекст.... Запускаем пхп и получаем файл со следующим содержимым: текст1тексте1те текст2текст2тек тектекст2тектек Вот такую идею хочу осуществить (только файлов будет очень много)
Привет. Не проверял, но должно сработать так: PHP: <?phpforeach (glob(__DIR__."/files/*.*") as $file){ file_put_contents(__DIR__.'/result.txt', file_get_contents($file, NULL, NULL, 0, 15).PHP_EOL, FILE_APPEND);} Файлы соответственно в папке /files/, а сам скрипт должен находится на уровень выше. Напиши если не сработает.
вроде самое то, но тут есть небольшая проблема, если в тескте которые он парсит есть абзац, то он его тоже копирует как абзац и получается в результате не текст в строку а опять строки. А так текст если просто написан без них, то все ок. Осталось только понять как сделать так, что бы абзацы не копировались или заменялись на обычный пробел, что бы в результате был сплошной текст в одну строку с каждого документа своя строка.
PHP: <?phpforeach (glob(__DIR__."/files/*.*") as $file){ file_put_contents(__DIR__.'/result.txt', preg_replace("@\r\n|[\r\n]@"," ", file_get_contents($file, NULL, NULL, 0, 15)).PHP_EOL, FILE_APPEND);}
Супер! Огромное спасибо! Вы меня выручаете очень сильно!! А не сложно будет Вам подсказать еще такой нюанс з.ы. хотя я уже наверно достал) Как добавить в этот код например фильтр слов, например + ко всему этому, что бы удалялись определенные слова ? (но при этом все копировалось так же, кроме этих слов) Если можно, на примере хотя бы двух слов "этоссылка" и "этолинк", что бы я мог понять как и куда добавлять эти слова.
извини что беспокою, но хотел задать вопрос по вчерашнему скрипту, который ты мне написал <?php foreach (glob(__DIR__."/files*.*") as $file){ file_put_contents(__DIR__.'/result.txt', preg_replace("@\r\n|[\r\n]@"," ", file_get_contents($file, NULL, NULL, 0, 15)).PHP_EOL, FILE_APPEND); } вчера все работало, а сегодня переустановил денвер с 5.3 на 5.2 (т.кю большинство скриптов моих на нем работают) и работать перестал т.е. ничего не происходит после срабатывания скрипта (файл не создается с результатом)
Привет. __DIR__ была добавлена в 5.3 Попробуй заменить места, где она присутствует на: dirname(__FILE__)
столкнулся с такой проблемой, что начал выдергивать текст из тхт, но сохраняет некоторые в иероглифах, хотя тот же текст в текстовом документе и там все ок. Как решить такую проблему ? Может как то в коде указать кодировку ? (з.ы. у меня так только русский текст) з.ы. файлы из которых он дергает текст с Русскими именами и форматом тхт ..норм дергает только у UTF-8 а остальные не хочет
Ну вот смотри : PHP: $folder_old_name = " $function ";$folder = substr($folder_old_name, strlen("abc ") ); сначала мы можем просканировать весь файл, потом, вычистив его(я опустил это) мы можем элементарно делать перебор по строке\или же фразе.Тут я привел пример, когда в начале у нас стоит 3 символа, которые нам не нужны.И потом просто проецируем это на нашу функцию и, например, полученное из нашего высшего выражения, создаем на его основе папку: PHP: mkdir(. $folder) Вот и все.
Code: function quote($value) { return preg_quote($value,"/"); } $words = array_map("quote",array('123','321')); $text = file_get_contents($file, NULL, NULL, 0, 15); $convertedText = mb_convert_encoding($text, 'utf-8', mb_detect_encoding($text)); file_put_contents(__DIR__.'/result.txt', preg_replace("/\r\n|[\r\n](".implode('|',$words).")/"," ", $convertedText); что-то типа