【问题标题】:filemtime is returning garbage values in phpfilemtime 在 php 中返回垃圾值
【发布时间】:2019-06-26 20:28:14
【问题描述】:

我正在编写如下所示的 php 代码:

 $src_dir = ('\\\INVEST-ST-001\test\podcast\incoming_folder'); 

 $mp4_files = preg_grep('~\.(mp4)$~', scandir($src_dir));     

 $file = $mp4_files[$key];

 print_r($file);                      // Line A

 echo date("F d Y", filemtime("$file")); echo "\t"; echo date("H:i:s", filemtime("$file"));  // Line D

A 行返回以下值:

 36031P.mp4  hello.mp4

以上2个文件放在incoming_folder中。上述 2 个文件的最后修改日期为:

1/05/2019 2:56 PM   

30/04/2019 10:21 AM

我使用 D 行返回网页上的最后修改日期,但我得到以下垃圾日期,而不是上面的实际日期:

December 31 1969 19:00:00

December 31 1969 19:00:00

问题陈述:

我想知道我应该在 D 行进行哪些更改,以便它为上述 2 个文件返回正确的 Last Modified Dates

【问题讨论】:

  • var_dump(filemtime($file))); 可能是假的?如果您检查日志,也可能会发出警告。
  • 执行var_dump(filemtime($file))); 后出现以下错误:stat failed for 36031P.mp4 in W:\xyz\status.php on line 681 bool(false) Warning: filemtime(): stat failed for hello.mp4 in W:\xyz\status.php on line 681 bool(false)
  • 所以看起来像是错误的工作目录,change it。或者,您需要使用文件的完整路径,例如。 /home/foo/file1.txt
  • 我需要在哪里添加/
  • 我已经更新了代码,它以上述方式拉动。

标签: php date filemtime


【解决方案1】:

显然我的 cmets 还不够。我会更好地解释它。因此,您需要在文件名中包含路径,否则 filemtime 将失败,因为该文件不存在。

将哪个值传递给该函数有意义?

\\\INVEST-ST-001\test\podcast\incoming_folder\file1.mp3file1.mp3? “当前工作目录”可能是执行 PHP 脚本的位置,与您扫描文件名的路径不同。

基本上,您可以通过将路径重新附加到文件名来解决此问题。

$src_dir = ('\\\INVEST-ST-001\test\podcast\incoming_folder'); 

$mp4_files = preg_grep('~\.(mp4)$~', scandir($src_dir));     

$fullFileName = $src_dir . DIRECTORY_SEPARATOR . $mp4_files[$key];

echo date("F d Y", filemtime($fullFileName)); 
echo "\t"; echo date("H:i:s", filemtime($fullFileName));  // Line D

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多