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

Тема в разделе "PHP", создана пользователем Ozz99, 24 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Ozz99

    Ozz99

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

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

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

    casher

    Регистр.:
    24 фев 2008
    Сообщения:
    168
    Симпатии:
    17
    Вот скрипт:

    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($fp1024);
             
    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

    ЗЫ только учусь, буду рад конструктивной критике от опытных товарищей ;)
     
    slateclub и Ozz99 нравится это.
  3. slateclub

    slateclub Постоялец

    Регистр.:
    5 ноя 2008
    Сообщения:
    69
    Симпатии:
    4
    А можно как-то сделать примерно такой вариант работы:
    есть один текстовой файл, с текстом в одну строку, и его нужно разделить на разные текстовые файлы со случайным количеством символов, например от 200 до 300. Может быть тоже сможешь помочь?:ah:
     
  4. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    PHP:
    <?php

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

    $fp fopen($filer);
    while (!
    feof($fp)) {
            
    $i++;
            
    $text fread($fprand($min$max));
            
    $out fopen($i.'.txt'w);
            
    fwrite($out$text);
            
    fclose($out);
    }
    fclose($fp);
    ?>
    Для UTF-8 правда такой вариант не годится.
     
    slateclub нравится это.
  5. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    А какая разница utf или не utf? Объясните пожалуйста
     
  6. Yfo

    Yfo Создатель

    Регистр.:
    30 окт 2007
    Сообщения:
    43
    Симпатии:
    4
    В случае с утф наверное будет браться не 100 символов, а меньше. Т.к. один символ может занимать больше 1 байта.
     
  7. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    А что мешает сохранить скрипт в утф, раз уж так хочется. Но в любом случае будет работать.
     
  8. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    При чем тут скрипт? Речь идет о тексте который будут разделять на части
     
  9. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Я понял. Я сказал, какая разница в какой кодировке. В аттаче посмотрите, файл в утф и все прекрасно разбивает.
     

    Вложения:

    • test.rar
      Размер файла:
      11,7 КБ
      Просмотров:
      3
  10. Belial

    Belial

    Регистр.:
    1 фев 2010
    Сообщения:
    236
    Симпатии:
    113
    В utf русские символы кодируются в два байта на символ, а чтение в скрипте выше идёт побайтово. Из-за этого первые и последние символы в файлах могут резаться и не правильно отображаться. В остальном конечно проблем не должно быть, только min и mаx нужно больше указывать.
     
Статус темы:
Закрыта.