завершить сценарий в течение 60 секунд

Мне нужна помощь. Я пытаюсь завершить свой сценарий, если он достигает 60 секунд, если он не может подключиться к серверу, но я всегда ловлю 60 секунд, ограничивающих время выполнения. Я думаю, что мой код не работает.

<?php
$time_limit = 60;

set_time_limit ($time_limit);

if(isset($_GET['comm'])){

$command = $_GET['comm'];

$host    = "xxx.xx.xxx.xx";
$port    = xxxx;

$start_time = time();
$message =  $command;
$socket = socket_create(AF_INET, SOCK_STREAM,0) or die("Could not create socket\n");

while(!@socket_connect($socket, $host, $port)){

if ((time() - $start_time) >= $time_limit)
{
socket_close($socket);
die("Connection timed out.\n");
}

sleep(1);
continue;

}

socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");
$resultserv = socket_read ($socket, 1024) or die("Could not read server response\n");$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'http://tomysite/receive.php',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
'recrespond' => $resultserv

)
));

$resp = curl_exec($curl);

curl_close($curl);

echo $resultserv;

socket_close($socket);

}

?>

Заранее спасибо.

0

Решение

Вам нужно будет добавить ini_set('max_execution_time', 59);

0

Другие решения

установите $ time_limit = 55, так как время выполнения php 60 секунд начнется раньше, чем ваш скрипт. Если вам нужно, чтобы он работал ровно в течение 60 секунд, я бы использовал тот же сценарий, но увеличил бы время выполнения до 65 секунд с помощью ini_set ();

0

По вопросам рекламы [email protected]