1

非常に奇妙なことに、ローカルホストで実行されているコードを取得しましたが、それをリモートサーバーにデプロイしたとき. 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()

問題の特定にご協力ください。よろしくお願いします。

4

2 に答える 2

0

問題が解決しました。コードをブロックごとに削除し、最後に、ファイルをアップロードするときに、ifステートメントの1つがそのすぐ上のコメントによって誤ってコメントアウトされていることがわかりました。サーバーに何か問題があるのではないかと思います。変。

于 2012-10-22T12:48:56.747 に答える