0

我创建了一个函数,它使我能够提取在特定目录 (mydomian.com/csv_bakup/) 中创建的最新 csv 文件的日期 这是代码....

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命令似乎是最简单的解决方案......

是否有更好但更简单的解决方案?

4

1 回答 1

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()你得到什么了吗?

另外,如果您的回答像以前的评论者所说的那样有帮助,请接受它们。

于 2013-01-16T18:22:41.483 回答