相关文章推荐
魁梧的羊肉串  ·  【Azure ...·  2 月前    · 
强悍的梨子  ·  python ...·  2 月前    · 
性感的鸵鸟  ·  curl命令 CURL命令 测试 ...·  2 月前    · 
紧张的树叶  ·  Java AES-256-CBC ...·  1 年前    · 
路过的洋葱  ·  oracle ...·  1 年前    · 
气势凌人的麦片  ·  OC的NSPredicate ...·  1 年前    · 
八块腹肌的遥控器  ·  How to use ...·  1 年前    · 
勤奋的充电器  ·  xslt - XSL: how to ...·  1 年前    · 

PHP cURL 的超时设置有两个 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT,他们的区别是:

  • CURLOPT_CONNECTTIMEOUT 用来告诉 PHP 在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况。
  • CURLOPT_TIMEOUT 用来告诉成功 PHP 从服务器接收缓冲完成前需要等待多长时间,如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。

使用 cURL 下载 MP3 文件是一个对开发人员来说不错的例子,CURLOPT_CONNECTTIMEOUT 可以设置为10秒,标识如果服务器10秒内没有响应,脚本就会断开连接,CURLOPT_TIMEOUT 可以设置为100秒,如果MP3文件100秒内没有下载完成,脚本将会断开连接

需要注意的是:CURLOPT_TIMEOUT 默认为0,意思是永远不会断开链接。所以不设置的话,可能因为链接太慢,会把 HTTP 资源用完。

在 WordPress 中,wp_http 类,这两个值是一样的,默认是设置为 5 秒。