Example #1
0
 /**
  * @Secure(roles = "ROLE_ADMIN")
  * @Route("/parser-events")
  */
 public function indexAction()
 {
     $file = '../web/FOMReport3.csv';
     $handle = @fopen($file, "r");
     $i = 0;
     if ($handle) {
         while (($buffer = fgets($handle, 4096)) !== false) {
             $str = explode('|', $buffer);
             $start = new \DateTime(explode('.', $str[0])[2] . '-' . explode('.', $str[0])[1] . '-' . explode('.', $str[0])[0] . ' 00:00:00');
             $end = new \DateTime(explode('.', $str[1])[2] . '-' . explode('.', $str[1])[1] . '-' . explode('.', $str[1])[0] . ' 00:00:00');
             if ($str[4] != 'Россия') {
                 $adrs = $str[4] . ', ' . $str[5];
             } else {
                 $adrs = $str[5];
             }
             $title = $str[2];
             $type = $str[3];
             $important = $str[10];
             $organizator = $str[7];
             $auditory = str_replace("\n", '', $str[8]);
             $specialties = str_replace("\n", '', $str[9]);
             echo ++$i;
             $txt = '';
             $txt .= "<b>Тип мероприятия:</b> {$type}<br />";
             if ($str[4] != 'Россия') {
                 $txt .= "<b>Страна:</b> {$str['4']}'<br />";
             }
             $txt .= "<b>Адрес:</b> {$str['6']}'<br />";
             $txt .= "<b>Город:</b> {$str['5']}'<br />";
             $txt .= "<b>Организатор:</b> {$organizator}'<br />";
             $txt .= "<b>Целевая аудитория:</b> {$auditory}'<br />";
             $txt .= "<b>Адрес проведения:</b><br />";
             //                echo "INSERT event SET created = '".$start->format('Y-m-d H:i:s')."', starts = '".$start->format('Y-m-d H:i:s')."', ends = '".$end->format('Y-m-d H:i:s')."', title = '$title', address = '$adrs', body = '$txt'";
             $tmpSpecialties = explode('; ', $specialties);
             $event = new Event();
             $event->setStarts($start);
             $event->setEnds($end);
             $title = str_replace('"""', '"', $title);
             $event->setTitle($title);
             $event->setAddress($adrs);
             $event->setBody($txt);
             $event->setImportant($important);
             foreach ($tmpSpecialties as $val) {
                 $t = $this->getDoctrine()->getRepository('EvrikaMainBundle:Specialty')->findOneByUnivadisCode($val);
                 if ($t) {
                     $er = 0;
                     foreach ($event->getSpecialties() as $v) {
                         if ($t == $v) {
                             $er = 1;
                             break;
                         }
                     }
                     if ($er == 0) {
                         $event->getSpecialties()->add($t);
                     }
                 } else {
                     $t = $this->getDoctrine()->getRepository('EvrikaMainBundle:Specialization')->findOneByUnivadisCode($val);
                     if ($t) {
                         $er = 0;
                         foreach ($event->getSpecializations() as $v) {
                             if ($t == $v) {
                                 $er = 1;
                                 break;
                             }
                         }
                         if ($er == 0) {
                             $event->getSpecializations()->add($t);
                         }
                     }
                 }
                 $t = null;
             }
             $this->getDoctrine()->getManager()->persist($event);
             $this->getDoctrine()->getManager()->flush($event);
         }
         if (!feof($handle)) {
             echo "Error: unexpected fgets() fail\n";
         }
         fclose($handle);
     }
     exit;
 }