PHP, unexpected T
Very strange, I got code running on my localhost, but when I deployed it on remote server. it got T_IF error. The code is as follow:
The xxx line is around: $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()
Please help to locate the problem. Many thanks in advance.
Not likely, but it could be caused by the way you set your $experiment['import_result']
in your if
statement above. For example if $sheet
is not set or is empty, $experiment['import_result']
will not be set, as there is no else
. Try adding an additional 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
}
Problem Solved. I remove the code block by block and finally figure it out that when I uploading the file, one of the if statement has been accidently commented out by the comments just above it. I guess it might be something wrong about the server. Weird.
链接地址: http://www.djcxy.com/p/69848.html上一篇: .htaccess重写PHP $
下一篇: PHP,意想不到的T