导出的最后一个列表 - 最新列表

时间:2013-01-15 08:36:10

标签: php codeigniter

我创建了一个函数,使我能够提取在特定目录中创建的最新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命令似乎是最简单的解决方案......

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

1 个答案:

答案 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()原始输出来测试第一个。你有什么收获吗?

另外,如果以前的评论者说的话,请接受你的答案。