是否有暂停 php 代码执行而不是 sleep() 的功能?

is there function too pause php code execution instead sleep()?

我有 api 管理网络设备之类的东西

我的代码

public function connect($ip, $login, $password)
{
    for ($ATTEMPT = 1; $ATTEMPT <= $this->attempts; $ATTEMPT++) {
        $this->connected = false;
        $PROTOCOL = ($this->ssl ? 'ssl://' : '' );
        $context = stream_context_create(array('ssl' => array('ciphers' => 'ADH:ALL', 'verify_peer' => false, 'verify_peer_name' => false)));
        $this->debug('Connection attempt #' . $ATTEMPT . ' to ' . $PROTOCOL . $ip . ':' . $this->port . '...');
        $this->socket = @stream_socket_client($PROTOCOL . $ip.':'. $this->port, $this->error_no, $this->error_str, $this->timeout, STREAM_CLIENT_CONNECT,$context);
        if ($this->socket) {
            socket_set_timeout($this->socket, $this->timeout);
            $this->write('/login', false);
            $this->write('=name=' . $login, false);
            $this->write('=password=' . $password);
            $RESPONSE = $this->read(false);
            if (isset($RESPONSE[0])) {
                if ($RESPONSE[0] == '!done') {
                    if (!isset($RESPONSE[1])) {
                        // Login method post-v6.43
                        $this->connected = true;
                        break;
                    } else {
                        // Login method pre-v6.43
                        $MATCHES = array();
                        if (preg_match_all('/[^=]+/i', $RESPONSE[1], $MATCHES)) {
                            if ($MATCHES[0][0] == 'ret' && strlen($MATCHES[0][1]) == 32) {
                                $this->write('/login', false);
                                $this->write('=name=' . $login, false);
                                $this->write('=password=' . $password);
                                $RESPONSE = $this->read(false);
                                if (isset($RESPONSE[0]) && $RESPONSE[0] == '!done') {
                                    $this->connected = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            fclose($this->socket);
        }
        sleep($this->delay);
    }

    if ($this->connected) {
        $this->debug('Connected...');
    } else {
        $this->debug('Error...');
    }
    return $this->connected;
}

出于安全原因,托管服务中的 sleep() 函数被阻止,我想使用它连接到设备很重要。现在的问题是有什么函数可以在 php 中使用它而不是 sleep() 函数吗?? 有任何帮助

你可以试试usleep()。但是,我不知道 usleep() 是否也在您的托管服务上被阻止。