Работа с txt файлами

Статус
В этой теме нельзя размещать новые ответы.

Ozz99

Постоялец
Регистрация
15 Май 2009
Сообщения
199
Реакции
169
Имеем папку с txt файлами 5- 10 файлов в которых по 10000 - 15000 строк.

Надо скриптом взять всю инфу оттуда и закинуть в другую папку, тоже в txt файлы, но что бы в них было строго по 500 строк. И что бы файлы шли по именам 1, 2, 3, 4....

Если не жалко время, то пожалуйста выложите тут. Или за умеренную плату в личку.
 
Вот скрипт:

PHP:
<?php
set_time_limit(0);
$dp = opendir('input');
$new_file_number = 1;
$current_row = 1;
while ( $file = readdir($dp) ){
   if ( !is_file('input/' . $file) ) continue;
   $fp =  fopen('input/' . $file, 'r');
   while ( !feof($fp) ){
      $new_fp = fopen('output/' . $new_file_number . '.txt', 'a');
      
      for ($row = $current_row; $row <= 500; $row++){
         if ( feof($fp) ) break;
         
         $string = fgets($fp, 1024);
         fputs($new_fp, $string); 
      }   
      
      if ( feof($fp) ){
         $current_row = $row - 1;
         fclose($fp);
         fclose($new_fp);
         break;
      }   
      
      fclose($new_fp);
      $new_file_number++;
      $current_row = 1;
   }
}
closedir($dp);
?>

в директории со скриптом создаёшь 2 папки: input (в неё ложишь исходники) и output (в ней будут конечные файлы).

В атаче готовый с папками, как у меня работает на денвере.
Посмотреть вложение file_remake.rar

ЗЫ только учусь, буду рад конструктивной критике от опытных товарищей ;)
 
А можно как-то сделать примерно такой вариант работы:
есть один текстовой файл, с текстом в одну строку, и его нужно разделить на разные текстовые файлы со случайным количеством символов, например от 200 до 300. Может быть тоже сможешь помочь?:ah:
 
PHP:
<?php

$file = 'text.txt';
$min = 200;
$max = 300;

$fp = fopen($file, r);
while (!feof($fp)) {
        $i++;
        $text = fread($fp, rand($min, $max));
        $out = fopen($i.'.txt', w);
        fwrite($out, $text);
        fclose($out);
}
fclose($fp);
?>
Для UTF-8 правда такой вариант не годится.
 
В случае с утф наверное будет браться не 100 символов, а меньше. Т.к. один символ может занимать больше 1 байта.
 
А что мешает сохранить скрипт в утф, раз уж так хочется. Но в любом случае будет работать.
 
При чем тут скрипт? Речь идет о тексте который будут разделять на части
Я понял. Я сказал, какая разница в какой кодировке. В аттаче посмотрите, файл в утф и все прекрасно разбивает.
 

Вложения

  • test.rar
    11,7 KB · Просмотры: 3
А какая разница utf или не utf? Объясните пожалуйста
В utf русские символы кодируются в два байта на символ, а чтение в скрипте выше идёт побайтово. Из-за этого первые и последние символы в файлах могут резаться и не правильно отображаться. В остальном конечно проблем не должно быть, только min и mаx нужно больше указывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху