如何在PHP中全局设置或规避CURLOPT_CONNECTTIMEOUT?

时间:2019-02-27 13:24:12

标签: php curl timeout php-7.2 php-ini

是否可以通过某种方式为所有cURL请求全局设置Startup

我遇到一个问题,即在升级到PHP 7.2之后,某些软件的cURL现在会在连接超时10秒后失败。我无法确切地说出是什么改变了此行为,但是我需要以某种方式全局设置a)导致此问题现在超时的原因,或b)增加超时限制。

是否有任何CURLOPT_CONNECTTIMEOUT设置可能会影响此设置?

编辑: 设置php.ini似乎并没有影响。

编辑: 仅供参考,同样的问题,更多的Wordpress细节:https://wordpress.stackexchange.com/questions/330013/curl-28-error-after-switch-from-to-brew-php-7-2-on-localhost

1 个答案:

答案 0 :(得分:0)

  

是否有任何会影响到此的php.ini设置?

不这么认为。如果您已安装PCEL Runkit并在php.ini中安装了runkit.internal_override=1,则可以将其添加到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内置函数的行为。