【问题标题】:PHP - file_exists takes very longPHP - file_exists 需要很长时间
【发布时间】:2016-03-17 14:53:20
【问题描述】:

我想阻止 PHP 脚本同时运行。我通过检查“lock.txt”文件是否存在来实现这一点。然而,这需要几秒钟,即使它应该非常快。

<?php
    if (!file_exists('lock.txt')) {
        $lock = fopen('lock.txt','w');

        ////////////////////////////////////////////
        ......script that takes 30-160 seconds......
        ////////////////////////////////////////////

        $jsonArray = array(utf8_encode('script')=>utf8_encode('finished'));
        fclose($lock);
        unlink('lock.txt');
    } else {
        $jsonArray = array(utf8_encode('script')=>utf8_encode('locked'));
    }
    echo json_encode($jsonArray);
?>

为什么需要这么长时间?它应该只是使初始 if 语句失败并快速回显json_encode

我做错了吗?

【问题讨论】:

  • 文件大小是多少?
  • 7 KB(如果包含类,则为 670 KB,即使 if 语句未通过)。这需要很长时间,因为它从 API 请求数据(有点慢),而不是因为脚本很大。
  • 如果你指的是 'lock.txt' 文件:它是 0 KB。
  • 这是通过 Web 界面还是命令行?你也应该看看php.net/manual/en/function.flock.php
  • @displaynn 请告诉我你没有使用 IE。

标签: php file fopen exists unlink


【解决方案1】:

问题出在客户端,我在 Chrome 浏览器中使用了两个选项卡。

感谢@apokryfos 和@WheatBeak 帮助我得出这个结论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2020-08-26
    • 2014-10-09
    • 2012-11-26
    • 2019-12-27
    相关资源
    最近更新 更多