我创建了一个函数,使我能够提取在特定目录中创建的最新csv文件的日期(mydomian.com/csv_bakup/)以下是代码....
public function get_last_list_exported(){
$date_str_arr = array();
// timestamp of last csv file ?
exec('ls -ltr mydomian.com/csv_bakup/ | tail -1',$output);
$temp_a = explode(' ', $output[0]);
$date_str_arr = explode('_', $temp_a[9]);
return $date_str_arr[0].'/'.$date_str_arr[1].'/20'.$date_str_arr[2];
}
该函数使用php exec()函数来运行linux命令。
一切都在本地运行良好,但当我将其迁移到实时服务器时,行中的undefined offsets
错误
return $date_str_arr[0].'/'.$date_str_arr[1].'/20'.$date_str_arr[2];
像这样运行linux命令似乎是最简单的解决方案......
是否有更好但更简单的解决方案?
答案 0 :(得分:0)
以下是我的想象:
undefined offset
表示你指的是一个不存在的数组键,这意味着该数组为空,这意味着$output
为空,这意味着命令的执行失败
第一个可能的原因:你的路径肯定是正确的吗?
第二:可能是因为您的服务器不允许shell访问/仅提供非常有限的shell访问。检查php.ini
已禁用的命令,然后阅读http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir。
通过在exec()
中运行简单命令并var_dump()
原始输出来测试第一个。你有什么收获吗?
另外,如果以前的评论者说的话,请接受你的答案。