Example #1
0
 public function generateCsv()
 {
     $companies = $this->db->getAll('SELECT DISTINCT * FROM `companies` ');
     echo "Получил компании \r\n";
     $companyCategories = $this->db->getAll('SELECT c.title, cc.category FROM `companies` c JOIN `company_categories` cc ON (cc.id = c.category_id)');
     echo "Получил категории компаний \r\n";
     $csvArr = [];
     $csvArr[] = ['Категория', 'Название компании', 'Ссылка на сайт', 'Основной телефон', 'Телефоны', 'Дополнительные контакты', 'Ссылка на страницу контактов', 'Город', 'Отзывы'];
     echo "Начало процесса формирования csv \r\n";
     foreach ($companies as $company) {
         echo $company['title'] . " \r\n";
         $company = $this->data($company);
         $categories = [];
         echo "Поиск категорий компании \r\n";
         foreach ($companyCategories as $key => $cc) {
             if ($company['title'] == html_entity_decode($cc['title'])) {
                 echo $cc['category'] . " \r\n";
                 $categories[] = $cc['category'];
                 unset($companyCategories[$key]);
             }
         }
         $categories = implode(', ', $categories);
         $phones = [];
         if ($company['phones'] && is_array($company['phones'])) {
             foreach ($company['phones'] as $phone) {
                 $phones[] = $phone['description'] . ' - ' . $phone['number'];
             }
         }
         $phones = implode(', ', $phones);
         $contacts = [];
         if ($company['other_contacts'] && is_array($company['other_contacts'])) {
             foreach ($company['other_contacts'] as $contact) {
                 $contacts[] = $contact['description'] . ' - ' . $contact['data'];
             }
         }
         $contacts = implode(', ', $contacts);
         $reviews = $company['reviews']['title'] . '; Ссылка на отзывы - ' . $company['reviews']['href'];
         $csvArr[] = [$categories, $company['title'], $company['site'], $company['main_phone'], $phones, $contacts, $company['contact_page'], $company['city'], $reviews];
     }
     echo "Запись csv файла \r\n";
     $file = date('d-m-Y') . '.csv';
     $path = CSV . $file;
     $csv = new CsvWriter($path, $csvArr);
     $csv->GetCsv();
     return $file;
 }