Как установить или обойти CURLOPT_CONNECTTIMEOUT в PHP в глобальном масштабе? - PullRequest
0 голосов
/ 27 февраля 2019

Есть ли способ как-то глобально установить CURLOPT_CONNECTTIMEOUT для всех запросов cURL?

У меня есть проблема, из-за которой после обновления до PHP 7.2 некоторые программные cURL теперь дают сбой при тайм-ауте соединения 10 с, когда доне.Я не могу точно сказать, что изменило это поведение, но мне нужно как-то глобально установить: а) что приводит к истечению времени ожидания, или б) увеличить лимит времени ожидания.

Любые php.ini настройки, которые могутповлиять на это?

Редактировать: Настройка default_socket_timeout, кажется, не влияет на это.

Редактировать: FYI та же проблема с большим количеством особенностей Wordpress: https://wordpress.stackexchange.com/questions/330013/curl-28-error-after-switch-from-to-brew-php-7-2-on-localhost

1 Ответ

0 голосов
/ 02 марта 2019

Какие-либо настройки php.ini, которые могут повлиять на это?

так не считаете.если у вас установлен PCEL Runkit и runkit.internal_override=1 в php.ini, вы можете добавить это в файл auto_prepend_file php.ini, который должен сделать ваши собственные тайм-ауты глобальными значениями по умолчанию:

<?php
runkit_function_rename('curl_init','curl_original_init');
runkit_function_add ( 'curl_init' , '$url=null','$ch=curl_original_init($url);curl_setopt_array($ch,array(CURLOPT_TIMEOUT=>100,CURLOPT_CONNECT_TIMEOUT=>100));return $ch;');
  • обратите внимание, что многие люди считают, что это an evil hack, технически изменяя поведение встроенных функций php n all ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...