За последние 24 часа нас посетили 15712 программистов и 1536 роботов. Сейчас ищут 874 программиста ...

Сортировка txt файла,выборка одинаковых значений с записью в новый txt файл с именем этого значения.

Тема в разделе "PHP для новичков", создана пользователем sense1, 10 мар 2017.

  1. sense1

    sense1 Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    35
    Симпатии:
    1
    Есть txt база, нужно отсортировать её по значениям и одинаковые файлы записать в новый файл с названием этого значения!Помогите с решением или подскажите пожалуйста,направьте....
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Мало информации, где примеры файлов, какие значения и т.д.
     
  3. sense1

    sense1 Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    35
    Симпатии:
    1
    PHP:
    1. <?php
    2. ini_set('display_errors', 1);
    3. ini_set('memory_limit', 64M);
    4. $data = file("done.txt"); // это файл txt который нужно разбить по значениям.
    5. $search = "China Telecom"; // это  пример значения которое нужно найти.
    6. $matches = array(); //массив в который записываем все совпавшие значения.
    7. foreach($data as $k=>$line)
    8. {
    9.   if(preg_match("/\b$search\b/i", $line))
    10.   {
    11.     $matches[$k] = $line;
    12.   }
    13. }
    14. ?>
    Теперь $matches нужно записать в новый файл с именем China Telecom.
    Как это сделать не подскажите? Заранее спасибо.
     
    #3 sense1, 10 мар 2017
    Последнее редактирование модератором: 10 мар 2017
  4. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    data.txt
    Код (Text):
    1. China Hello
    2. Hello
    3. Some Text
    4. Maybe China
    5. Jocker
    6. PHP
    someaction.php
    PHP:
    1.   $arr = file('data.txt',FILE_IGNORE_NEW_LINES);
    2.    $search = 'China';
    3.     foreach($arr as $str){
    4.         if(preg_match("/\b$search\b/i", $str))
    5.             $match[]=$str;
    6.     }
    7.     file_put_contents($search.'.txt',implode("\n",$match));
    В итоге получаем
    China.txt
    Код (Text):
    1. China Hello
    2. Maybe China
     
    denis01 и sense1 нравится это.
  5. sense1

    sense1 Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    35
    Симпатии:
    1
    Спасибо!