залить из txt список каналов в бд

Тема в разделе "Как сделать...", создана пользователем ВадимПолоусоВорон, 15 янв 2014.

  1. ВадимПолоусоВорон

    ВадимПолоусоВорон Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    29
    Симпатии:
    9
    Доброго времени суток . Подскажите кто знает - столкнулся с траблом необходимо из txt с тв программо залить все в бд. в бд есть ячейки time conten day - что соответсвует записям в txt времени когда идет тот или иной фильм, его названию и к какому дню недели он относится. Подскажите как это сделать? (перепробовал все что знал и нашел на форумах - не работает (()
    запись в txt такого формата
    Код:
    Первый Автомобильный.
    
    Понедельник, 14 октября
    1.00 Blancpain Endurance Series 2013 г. ( Spa )
    1.30 Автопатруль
    1.55 Автоподиумы
    2.00 4х4
    2.30 Эврика!
    3.00 Эврика!
    3.30 Двойной тест
    ...
    
    Вторник, 15 октября
    0.00 Спецпроект Франкфуртский автосалон 2013 г.
    1.00 Ни пуха ни пера
    1.30 Авто по требованию
    1.55 АвтоНовости
    ...
     
  2. Samael

    Samael Создатель

    Регистр.:
    21 янв 2013
    Сообщения:
    19
    Симпатии:
    2
    Я бы искал переносы строки, и разбивал бы все в массив. потом forech'ем разбивал каждую строку на подстроку найдя первый пробел в строке, то есть сразу после времени.
    Итого, получился бы массив с временем и программами.
    Опять же, я так понимаю, после названия канала есть точка, а после даты её нету.
    То есть если было сразу два переноса строки - а следующая с точкой - это будет следующий канал.
    А если без точки - то это будет следующий день.

    Ну, а потом запрос INSERT INTO.
     
  3. sCrypt

    sCrypt Создатель

    Регистр.:
    11 авг 2008
    Сообщения:
    23
    Симпатии:
    12
    непонятно в каком формате хранить день и время, и нет года.
    Я бы вынес время в одно поле, типа datetime, ну а про парсинг уже сказал Samael
    PHP:
    <?php
    $file 
    file("file.txt");

    foreach(
    $file as $row){
        
    // В переменной $row содержится строка, проверяешь её на соответствие неким условиям и делаешь что-либо
    }
     
  4. xorbit13

    xorbit13 Создатель

    Регистр.:
    9 фев 2008
    Сообщения:
    41
    Симпатии:
    10
    PHP:
    <?php
    $file 
    fopen('tv.txt',"r");
    $tv = array();
    while(
    $row fgets($file)){
      if(
    preg_match("/^[а-яА-Я]/",$row)){
        
    $curr_day split(',',$row);
        
    $curr_day $curr_day[0];
      }elseif(
    preg_match("/^[0-9]/",$row)){
        
    $tv[$curr_day][substr($row,0,strpos($row,' '))] = substr($row,strpos($row,' '));
      }  
    }
    $link mysql_connect('localhost''mysql_user''mysql_password');
    if (!
    $link) {
        die(
    'Ошибка соединения: ' mysql_error());
    }
    mysql_select_db('mydb');
    foreach(
    $tv as $day=>$prog){
       foreach(
    $prog as $time=>$title)
       
    mysql_query("INSER INTO `table` (day,time,title) VALUES ('$day','$time','$title')");
    }
    ?>
     
    latteo нравится это.