Php 重复功能

Php 重复功能,php,function,Php,Function,我创建了一个函数,用于在没有获取一个值的情况下(在本例中为ok),重复并重新检查其他时间和其他时间,但问题是,检查2或3次后,所有时间都会关闭连接 我的职能: 这个想法是功能测试一直在进行,当其他功能创建名为pol.txt的文件时停止,但问题是它的功能,因为所有2秒钟内的所有时间都会导致所有浏览器的连接中断 我实际上在本地主机和服务器中进行了测试,结果相同 问题是,如果每次都不刷新页面,是否不可能运行此类函数,或者是否存在其他方法来执行此操作,因为在这种情况下,我无法使用刷新 谢谢,问候问题在于

我创建了一个函数,用于在没有获取一个值的情况下(在本例中为ok),重复并重新检查其他时间和其他时间,但问题是,检查2或3次后,所有时间都会关闭连接

我的职能:

这个想法是功能测试一直在进行,当其他功能创建名为pol.txt的文件时停止,但问题是它的功能,因为所有2秒钟内的所有时间都会导致所有浏览器的连接中断

我实际上在本地主机和服务器中进行了测试,结果相同

问题是,如果每次都不刷新页面,是否不可能运行此类函数,或者是否存在其他方法来执行此操作,因为在这种情况下,我无法使用刷新


谢谢,问候

问题在于您正在使用。这会在微秒内延迟执行,因此在两秒钟内您将有一个非常深层的递归,导致脚本出错


为此,您可能只需要使用一个循环,并确保它在x秒或迭代次数后结束。

您在这里实际要做什么?如果您输入else块,那么这将递归很多次。递归不是等待像这样的I/O的好方法,因为堆栈将继续增长,最终将失败。此外,任何一种长时间运行的等待过程都不会在浏览器上运行,因为浏览器会超时。是的,但我需要更多或更少的3秒等待脚本,因为这一次需要通过该脚本创建和检测新文件,但问题是,它的连接会在几分钟内关闭,如果您需要等待,在循环中执行,而不是在递归中执行。这样,您就不会无缘无故地构建越来越深的堆栈。除此之外,在这样的web应用程序中等待只会导致更多问题。web应用程序应该立即响应用户。如果有一个进程在后台运行,则在完成时通知用户。WebSocket、AJAX轮询,甚至只是在任何给定页面加载时检查通知都比人工等待更可取。此外,我尝试不使用usleep,结果相同。我还使用内部循环进行测试,结果相同,我为内部显示循环创建了自动增量函数,但当1或2工作时,连接断开seconds@Francisco显然,如果没有usleep,递归速度会更快。使用循环并设置最大值,或者(可能更好)使用客户端解决方案,如注释中提到的javascript轮询。
<?php
function recursive() {
    if (file_exists("pol.txt")) {
        print "ok"; 
    } else {
        print "bad";
        usleep(1);
        recursive();    
    }
}
recursive();
?>