/** * @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; }