【问题标题】:PHP. File size over 2 Gb and Maximum execution timephp。文件大小超过 2 Gb 和最长执行时间
【发布时间】:2014-12-16 14:50:27
【问题描述】:

我使用此函数http://us.php.net/manual/en/function.filesize.php#115792 在 32 位/64 位平台上获取超过 2 GB 的文件/文件夹大小。

function my_filesize($fp) {...}

$dir = opendir( 'my_path' );
print my_filesize($dir);

function my_filesize($fp) - 见上面的链接。

但我得到 致命错误:在 C:\... 在线 *

中超过了 30 秒的最大执行时间

这是行:

if (0 === fseek($fp, - $step, SEEK_CUR)) {

我尝试使用 set_time_limit(0)。 当然不行。

如果我使用http://us.php.net/manual/en/function.filesize.php#113457,我会得到相同的结果。

我该怎么办?

编辑 2: 看来我不需要使用opendir。我必须使用 fopen 并且路径必须包含文件,而不是目录。

【问题讨论】:

  • 看看this SO question。不允许您取消时间限制的原因有多种。还有多种方法可以尝试解决它。
  • 看来我不需要使用opendir。我必须使用 fopen 并且路径必须包含文件,而不是目录。

标签: php filesize


【解决方案1】:

使用

set_time_limit — 限制最大执行时间

设置允许脚本运行的秒数。如果达到此值,脚本将返回致命错误。默认限制为 30 秒,如果存在,则为在 php.ini. 中定义的 max_execution_time

调用时,set_time_limit() 会从零重新启动超时计数器。换句话说,如果超时时间是默认的 30 秒,并且在脚本执行 25 秒后调用了诸如 set_time_limit(20) 之类的调用,则脚本将在超时之前总共运行 45 秒。

【讨论】:

    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 2016-05-07
    • 2011-05-21
    • 1970-01-01
    相关资源
    最近更新 更多