我有以下代码,应该保存在文件服务器:
$month_name = "MARCH2014";
$objWriter->save(str_replace(__FILE__,"C:'xampp'htdocs'timesheet'files'{$month_name}'{$username}.xlsx",__FILE__));
我一直得到以下错误:
Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file C: mpp'htdocs imesheetiles'{MARCH2014}'{HS0103}.xlsx.' in C:'xampp'htdocs'timesheet'application'third_party'PHPExcel'Writer'Excel2007.php:399 Stack trace: #0 C:'xampp'htdocs'timesheet'application'controllers'time_sheet.php(6132): PHPExcel_Writer_Excel2007->save('C:?mpp'htdocs?i...') #1 [internal function]: Time_sheet->save_time_sheet() #2 C:'xampp'htdocs'timesheet'system'core'CodeIgniter.php(359): call_user_func_array(Array, Array) #3 C:'xampp'htdocs'timesheet'index.php(202): require_once('C:'xampp'htdocs...') #4 {main} thrown in C:'xampp'htdocs'timesheet'application'third_party'PHPExcel'Writer'Excel2007.php on line 399
但是当我使用以下语句时:
$objWriter->save(str_replace(__FILE__,"C:'xampp'htdocs'timesheet'files'MARCH2014'HS0103.xlsx",__FILE__));
没有错误,请告诉我哪里做错了?
标准PHP转义字符:
"C:'xampp'htdocs'timesheet'files'{$month_name}'{$username}.xlsx"
试图逃离
'xa => character <hex 0a> (<Line feed>)
'h => ???
't => <tab character>
'f => ???
如果您希望'
是'
而不是PHP中转义序列的第一个字符,那么您需要将其转义为''
"C:''xampp''htdocs''timesheet''files''{$month_name}''{$username}.xlsx"
另一种选择是通过使用unix目录分隔符(/
)使您的目录路径"安全",这在Windows和mac上仍然有效
"/xampp/htdocs/timesheet/files/{$month_name}/{$username}.xlsx"