编程语言
首页 > 编程语言> > 如何在全局设置或绕过PHP中的CURLOPT_CONNECTTIMEOUT?

如何在全局设置或绕过PHP中的CURLOPT_CONNECTTIMEOUT?

作者:互联网

有没有办法为所有cURL请求以某种方式全局设置CURLOPT_CONNECTTIMEOUT?

我有一个问题,在升级到PHP 7.2之后,某些软件的cURL现在在10s连接超时之前失败了.我不能确切地说是什么改变了这种行为,但我需要以某种方式全局设置a)导致现在超时的原因,或者b)增加超时限制.

任何影响这个的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

解决方法:

Any php.ini settings that can affect this?

不这么认为.如果您在php.ini中安装了PCEL Runkit并运行了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;');

>请注意,很多人会认为这是一个邪恶的黑客,从技术上改变了php内置函数的行为n ..

标签:php,curl,timeout,php-ini-2,php-7-2
来源: https://codeday.me/bug/20190710/1424284.html