Отправка запроса с PHP без получения ответа - PullRequest
1 голос
/ 25 января 2012

Возможно, это простой вопрос, но я не нашел ответа в сети.

У меня есть удаленный скрипт, который работает при открытии

http://www.example.com/do_it.php

Я не могу включить его, потому что эта страница может привести к фатальным ошибкам, загрузка может занять слишком много времени.

Мне нужно загрузить эту страницу из php самым быстрым и простым способом.

Сейчас я занимаюсь

$ch = curl_init($url);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,$withReturn);
$execute = curl_exec($ch);

Но этот скрипт получает ответ, поэтому, следовательно, он займет больше времени, чем скрипт, который возвращает только заголовки или не возвращает ничего.

Это лучший способ сделать это?

Если это поможет do_it.php находится на том же сервере, откуда мне нужно его вызвать.

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Я думаю, что возможные решения для выполнения запроса и не ожидания ответа - использовать php.net/curl_multi_exec, а затем избегать анализа ответа.Другой подход заключается в использовании сокетов, открытии соединения со сценарием, написании запроса и закрытии соединения без чтения ответа.

Пример сценария curl: https://github.com/vrana/php-async/blob/master/CurlAsync.php

Пример использованияметода сокета:

$fp = fsockopen('example.com', 80, $errno, $errstr, 30);

$out = "GET /do_it.php HTTP/1.1\r\n";
$out.= "Host: example.com\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
fclose($fp);

Приведенный выше пример не проверен и предоставляется в качестве отправной точки.

1 голос
/ 25 января 2012

Ну, самый быстрый способ - проверить все методы. Есть

CURL - curl_exec ()

Розетки - fsockopen ()

А если вы просто хотите загрузить ответ с этой страницы do_it.php, используйте get_file_contents ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...