1. Гость - предлагаем Вам : Мощные Выделенные Серверы 16-24 ядра / Lan 1Gbps - для XRumer, ZennoPoster, GSA, и другого сео-софта от 80 usd/месяц, для уточнения деталей воспользуйтесь формой обратной связи, или напишите Администратору форума в ЛС. ICQ:698-329-725

Php Как Соединить Файлы Из Папки На Сервере Php .

Тема в разделе "PHP программирование - Coding форум", создана пользователем SeoTrast, 13 ноя 2016.

  1. SeoTrast

    SeoTrast Известный пользователь
    Команда форума

    Регистрация:
    10 янв 2016
    Сообщения:
    62
    Симпатии:
    48
    Привет всем , интересует как склеить файлы на севере , и удалить дубли на php ?
     
  2. Prime

    Prime Administrator
    Команда форума

    Регистрация:
    8 янв 2016
    Сообщения:
    2.515
    Симпатии:
    1.309
    Для того, чтоб склеить файлы необходимо считать пути , в этом поможет glob . далее необходимо считать файлы в строку : file_get_contents и записать в новый файл : file_put_contents с параметром: FILE_APPEND дописать в конец файла. И конечно нужно это всё выполнить в цикле , воспользуемся циклом foreach , так-же удалим файлы из папки которые уже склеили unlink.
    Код (PHP):
    1. <?
    2. foreach(glob("folder/*.txt") as $file)
    3. {
    4.     file_put_contents("folder/new_file.txt", file_get_contents($file), FILE_APPEND);
    5.     unlink($file);  
    6. }
     
    #2 Prime, 13 ноя 2016
    Последнее редактирование: 11 сен 2017
  3. SeoTrast

    SeoTrast Известный пользователь
    Команда форума

    Регистрация:
    10 янв 2016
    Сообщения:
    62
    Симпатии:
    48
    Я запустил скрипт всё отлично копировалось , записалось в файл. подскажите как удалить дубли строк из файла ?
    К примеру :
    1) домен
    2) сайт
    3) домен
    4) индекс
    нужно : домен, сайт, индекс , помогите ..
     
  4. Prime

    Prime Administrator
    Команда форума

    Регистрация:
    8 янв 2016
    Сообщения:
    2.515
    Симпатии:
    1.309
    Удалить дубли, и перезаписать фал можно так :
    PHP:
    1. <?
    2. $arr = file("folder/file.txt");
    3. $arr1 = (array_unique($arr, SORT_REGULAR));
    4. for($i = 0; $i <= count($arr1); $i++)
    5.         {
    6.                 $str .= $arr1[$i];
    7.         }
    8.  file_put_contents('folder/file.txt', $str);
     
  5. SeoTrast

    SeoTrast Известный пользователь
    Команда форума

    Регистрация:
    10 янв 2016
    Сообщения:
    62
    Симпатии:
    48
    Спасибо Prime разобрался , всё работает, не грузит память, и процессор.
    Подскажите как разбить текстовый файл на несколько ?
     
  6. favorit

    favorit Guest

    linux
    split -l 1000 file.txt
     
  7. SeoTrast

    SeoTrast Известный пользователь
    Команда форума

    Регистрация:
    10 янв 2016
    Сообщения:
    62
    Симпатии:
    48
    Это хорошо , но мне нужно обрабатывать в скрипте php , а не из консоли .
     
  8. favorit

    favorit Guest

    PHP:
    1. <?
    2. exec('split Large.tar.gz -b 4096k SmallParts');
    3. exec('split -l 1000 file.txt');
     
    Prime нравится это.
  9. Prime

    Prime Administrator
    Команда форума

    Регистрация:
    8 янв 2016
    Сообщения:
    2.515
    Симпатии:
    1.309
    Если под Windows то можно обойтись командной строкой CMD
    Открываем comander CMD
    Код (Text):
    1. cd имя тома путь к вашей папке  for %f in (*.txt) do type "%f" >> result.txt   жмём enter
    Все текстовые файлы из указанной папки будут объедены в один "result.txt"

    Спасибо за внимание .
     

Поделиться этой страницей