2015-02-26 3 views
0

Я всегда получаю сообщение об ошибке:Получение сообщение об ошибке: «Ошибка синтаксиса, неожиданный„=“»

ошибка синтаксиса, неожиданный «=» в /home/clemjon/Desktop/testListings/26350.ini по строке 172

Когда я проверяю свой ini-файл, на последней строке есть «=». Я не знаю, как я могу удалить это.

Я получаю значения на CSV и передаю их на ini. Ошибка возникает при анализе файла ini, который я создал.

Это, как я создаю файл CSV:

$this->load->helper('csv'); 
       $this->db->select('*'); 
       $this->db->where('listing_id', $listingId); 
       $query = $this->db->get('listing'); 

      //folder creation 
       if (!is_dir('/home/clemjon/Desktop/testListings')) { 
        mkdir('/home/clemjon/Desktop/testListings', 0777, TRUE); 
       } 

       //file creation 
       $file='/home/clemjon/Desktop/testListings/'.$listingId.'.csv'; 
       if(file_exists($file)){ 
        unlink($file); 
       } 

       $this->load->helper('csv'); 
       $this->load->dbutil(); 
       $datas = $this->dbutil->csv_from_result($query); 
       $this->load->helper('file'); 
       if (! write_file($file, $datas, 'a+b')) 
       { 
        error_log('Unable to write the file'); 
       } 
       else 
       { 
        error_log('File written!'); 
       } 

Это, как я создаю INI-файл (запись из CSV):

$fileName = '/home/clemjon/Desktop/testListings/'.$listingId.'.csv'; 
      $fp = fopen($fileName, 'r'); 
      $fields = fgetcsv($fp); 

      $result = array(); 

      while ($record = fgetcsv($fp)) 
      { 
       $result[] = array_combine($fields, $record); 
      } 

      $sess_array = array(); 
      foreach ($result as $row) { 
       $sess_array = array(
        'current_listing_id' => $row['listing_id'], 
        'listing_description' =>$row['description'], 
        'current_listing_min_age' => $row['min_age'], 
        'current_listing_max_age' => $row['max_age'], 
        'current_listing_contact_id' => $row['contact_id'] 
       ); 
       $this->session->set_userdata($sess_array); 
      } 

      $this->write_ini_file($result, '/home/clemjon/Desktop/testListings/'.$listingId.'.ini', true); 
      chmod("/home/clemjon/Desktop/testListings/$listingId.ini", 0775); 
      $ini_array = parse_ini_file("/home/clemjon/Desktop/testListings/$listingId.ini", false); 
      print_r($ini_array); 

Я думаю, что есть проблема, когда я создаю csv, который включает в себя дополнительные '=', но я не могу понять, что. Есть идеи? заранее заранее

+0

Иногда в конце файла есть пустая строка, поэтому вы разбираете ее как строку CSV, но у нее нет значений. Может, это проблема? – Justinas

+0

Спасибо, Юнитас! :) Я только что получил результат непосредственно из БД (на данный момент) – Clem

+0

Пожалуйста, не публикуйте код в комментариях – Justinas

ответ

0

Thank Junitas! :) Я просто получил результат непосредственно из БД (на данный момент)

$this->db->select('*'); 
      $this->db->where('listing_id', $listingId); 
      $query = $this->db->get('listing'); 
      $results = $query->result(); 

      $file='/home/clemjon/Desktop/testListings/'.$listingId.'.ini'; 
       if(file_exists($file)){ 
        unlink($file); 
       } 
      $this->write_ini_file($results, $file, true); 
Смежные вопросы