【问题标题】:Getting this error message: "syntax error, unexpected '='"收到此错误消息:“语法错误,意外'='”
【发布时间】:2015-02-26 10:55:30
【问题描述】:

我总是收到此错误消息:

语法错误,第 172 行 /home/clemjon/Desktop/testListings/26350.ini 中出现意外的“=”

当我检查我的 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 时存在问题,但我不知道是什么。任何想法?提前谢谢

【问题讨论】:

  • 有时文件末尾有空行,因此您将其解析为 CSV 行,但它没有值。也许是这里的问题?
  • 感谢朱尼塔斯! :) 我只是直接从 DB 获取结果(现在)
  • 请不要在 cmets 中发布代码
  • 嗨朱尼塔斯!你知道为什么创建 cvs 会增加额外的行,而创建 ini 文件不会?

标签: php codeigniter csv ini


【解决方案1】:

感谢朱尼塔斯! :) 我只是直接从 DB 获取结果(暂时)

$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);

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2018-03-06
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多