PHP函数的状态
如果脚本有效,我会将PHP函数的状态,php,Php,如果脚本有效,我会将status.txta1添加到文件中,如果脚本无效,我会将0添加到文件中 <?php if (!file_exists("status.txt")) file_put_contents("status.txt", 0); //Create status.txt with value "0" //Read "status.txt" $status = file("status.txt"); if($status[0]!=1) start(); els
status.txt
a1
添加到文件中,如果脚本无效,我会将0
添加到文件中
<?php
if (!file_exists("status.txt"))
file_put_contents("status.txt", 0); //Create status.txt with value "0"
//Read "status.txt"
$status = file("status.txt");
if($status[0]!=1)
start();
else{
echo "already working...";
}
function start()
{
file_put_contents("status.txt", 1);//Start work
sleep(10);
file_put_contents("status.txt", 0);//End work
}
第二次运行脚本时,start()
会运行,因为。。。如果(!file_存在(“status.txt”)
将变为false
(因为status.txt文件存在!!)和文件内容(“status.txt”,0)代码>也不会执行
但是$status=file(“status.txt”)代码>将被执行,$status[0]
保存0,该0由之前运行的同一脚本预写。由于0不等于1,start()
向上运行
因此,根据此脚本,每次执行start()
实际上,我刚刚测试了完全相同的代码,它的工作原理与广告中的一样:)也许您的问题是试图从两个不同的位置运行脚本?(然后将在两个不同的目录中创建status.txt
文件)您的脚本看起来不错。事实上,我刚刚运行了它(在控制台中),它的工作方式和您预期的一样。也许您的系统配置正在缓存文件内容。您的操作系统/网络服务器是什么?我正在使用denwer om my PCF当func start()工作时,status.txt包含1。在那一刻,我用同样的脚本运行另一个选项卡。