【问题标题】:PHP page does not process multiple fwrite() commandsPHP 页面不处理多个 fwrite() 命令
【发布时间】:2013-06-23 13:26:02
【问题描述】:

我有一个包含多个链接的 PHP 页面。每个链接将不同的内容写入同一个文件。这通常有效。但是,在已经使用过的一分钟内使用相同的链接,它既不会创建也不会再修改文件。

这可以使用终端进行验证。

等待该分钟将恢复 PHP 脚本再次正常工作。

$file = fopen("/private/tmp/iTunesRemoteCommand", "w");
fwrite($file, $_GET['action']);
fclose($file);
chmod("/private/tmp/iTunesRemoteCommand", 0777);
print_r("Done");

出于测试目的,我将 $_GET['action'] 替换为固定的手动输入字符串。

本质上,每个链接每分钟工作一次。

安装的PHP版本是v5.3.4。

在多个浏览器上尝试过,我想知道在相对较短的连续时间内将相同的内容写入文件是 PHP 的限制,还是有一个设置(php.ini ?)可以减少这种延迟。

【问题讨论】:

  • 使用file_put_contents 更简单,只需一个语句
  • 有没有可能是 iTunes 锁定了文件之类的?
  • 没有。 iTunes 不直接访问该文件。 AppleScript 应用程序可以。但是,由于 PHP 脚本能够编写在过去一分钟内尚未运行的命令并且可以删除文件,因此锁定不太可能导致这种情况。

标签: php fopen fwrite fclose


【解决方案1】:

PHP 没有任何延迟。写入文件没有任何时间损失。

但是您在 PHP 旁边有一些东西会干扰这里。显然,您正在尝试远程控制 iTunes。如果没有 iTunes 读取文件,这是不可能发生的。这可能会影响可以写入文件的内容和时间。

试想一下,如果 iTunes 在内部使用 cronjob 来查找文件内容,那么这可能只会每分钟发生一次。了解真正发生的事情可能超出了我们的影响范围。

【讨论】:

  • 这是一个AppleScript,每秒读取一次文件。但是,由于我的 PHP 页面上的不同命令可以每分钟执行一次,并且页面的刷新实际上会删除文件(自我清理),我怀疑任何第三方(例如我的 AppleScript)都会锁定文件。
猜你喜欢
  • 1970-01-01
  • 2013-10-18
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
相关资源
最近更新 更多