PHP,意外的T_IF,期待xxx行xxx文件中的T_FUNCTION

时间:2012-10-21 03:22:02

标签: php parse-error

很奇怪,我在我的localhost上运行了代码,但是当我将它部署在远程服务器上时。它有T_IF错误。代码如下:

xxx行在:$ experiment ['import_result'] = TRUE;

private function do_import($file_info, $ih_id){

    $this->load->library("MY_PHPExcel");
    $inputFileName = $file_info['full_path']; 
    $sheetNames = array('General','Gas', 'Sample', 'Mass Gain', 'Cr'); 

    /**  Identify the type of $inputFileName  **/ 
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName); 
    /**  Create a new Reader of the type that has been identified  **/ 
    $objReader = PHPExcel_IOFactory::createReader($inputFileType); 
    /**  Advise the Reader that we only want to load cell data  **/ 
    $objReader->setReadDataOnly(true);
    /**  Advise the Reader of which WorkSheets we want to load  **/  
    $objReader->setLoadSheetsOnly($sheetNames); 
    /**  Tell the Reader that we want to use the Read Filter  **/  
    //$objReader->setReadFilter($filterSubset);
    /**  Load $inputFileName to a PHPExcel Object  **/ 
    $objPHPExcel = $objReader->load($inputFileName);
    $sheetCount=$objPHPExcel->getSheetCount();

    $experiment = array();
    for($index = 0; $index<$sheetCount; $index++){
        $objPHPExcel->setActiveSheetIndex($index);
        $sheetName = $objPHPExcel->getActiveSheet()->getTitle();
        if($sheetName == 'General'){
            $experiment['general'] = $this->read_general($objPHPExcel, $index, 1);
        }elseif($sheetName == 'Sample'){
            $experiment['sample'] = $this->read_sample($objPHPExcel, $index, 1);
        }elseif($sheetName == 'Gas'){
            $experiment['gas'] = $this->read_gas($objPHPExcel, $index, 1);
        }elseif($sheetName == 'Mass Gain'){
            $experiment['mass'] = $this->read_mass($objPHPExcel, $index, 1);
        }elseif($sheetName == 'Cr'){
            $experiment['cr'] = $this->read_cr($objPHPExcel, $index, 1);
        }
    }


    //if there is format error 
    foreach($experiment as $sheet){
        if(isset($sheet) && !empty($sheet)){
            if(isset($sheet['error']) && !empty($sheet['error'])){
                $experiment['import_result'] = FALSE;
                break 1;
            }elseif(isset($sheet['validation']['validation']) && $sheet['validation']['validation'] == 0){
                $experiment['import_result'] = FALSE;
                break 1;
            }else{
                $experiment['import_result'] = TRUE;
                break 1;
            }
        }
    }

    if($experiment['import_result']){//there is no format error, proceed to import
        //do import into DB
        $import_flag = 0;
        $post_data = $this->input->post();

        if(isset($post_data['import_radio']) && $post_data['import_radio'] == 1){//new 
            $import_flag = $this->m_import->import_experiment_new($experiment, $this->session->userdata('user_id'), $ih_id);
        }elseif(isset($post_data['import_radio']) && $post_data['import_radio'] == 2){//update
            //debug
            //$this->firephp->log('update an existing experiment');
            $import_flag = $this->m_import->import_experiment_update($post_data['import_eid'], $experiment, $this->session->userdata('user_id'), $ih_id);
        }else{//didn't choose a mode
            return array('status'=>4, 'message'=>'Please select "new" or "update".');
        }

        if($import_flag != 0){//import done ok
            if($post_data['import_radio'] == 1){
                return array('status'=>1, 'message'=>'File has been successfully imported, the new experiment ID is '.$import_flag.'.');
            }else{
                return array('status'=>1, 'message'=>'File has been successfully imported, Experiment'.$import_flag.' has been updated.');
            }
        }else{//validation ok, import fail
            return array('status'=>2, 'message'=>'Something went wrong during the process of importing, please try again.');
        }
    }else{
        //return experiment with errors which are to be presented in view
        $return_error = array();
        $return_warning = array();
        foreach($experiment as $name => $sheet){
            if(isset($sheet['validation'])){
                foreach ($sheet['validation']['error'] as $item){
                    array_push($return_error, $item);
                }
                foreach($sheet['validation']['warning'] as $item){
                    array_push($return_warning, $item);
                }
            }
        }
        //if(!empty($temp_interval_match_error)){   array_push($return_error, $temp_interval_match_error); }
        return array('status'=>3, 'message'=>'The file has invalid cells, please correct the file according to the following hints.',
                    'error' => $return_error, 'warning'=>$return_warning);
    }
}//end of fn do_import()

请帮助找到问题所在。非常感谢提前。

2 个答案:

答案 0 :(得分:0)

不太可能,但可能是由于您在上面的$experiment['import_result']声明中设置if的方式造成的。例如,如果$sheet未设置或为空,则不会设置$experiment['import_result'],因为没有else。请尝试添加其他else {$experiment['import_result'] = FALSE;}

foreach($experiment as $sheet){
    if(isset($sheet) && !empty($sheet)){
        if(isset($sheet['error']) && !empty($sheet['error'])){
            $experiment['import_result'] = FALSE;
        }elseif(isset($sheet['validation']['validation']) && $sheet['validation']['validation'] == 0){
            $experiment['import_result'] = FALSE;
        }else{
            $experiment['import_result'] = TRUE;
        }
    }
    else {$experiment['import_result'] = FALSE;} // added
}

答案 1 :(得分:0)

解决了问题。我逐块删除代码,最后发现当我上传文件时,其中一个if语句已经被上面的注释意外地注释掉了。我想这可能是服务器的错误。怪异。