在PHP中关闭cURL

时间:2014-02-03 05:05:30

标签: php curl

我在PHP中有3个关于cURL的问题:

  1. 如何检查cURL句柄是否为开放连接?
  2. PHP会自动关闭cURL连接吗?
  3. 不调用curl_close()是否有任何缺点?

2 个答案:

答案 0 :(得分:1)

让我们从最简单的答案开始回答

是的,PHP关闭连接,至少从他的端点关闭,连接的另一端可能有延迟关闭它或释放套接字或释放已经使用的进程线程,但PHP关闭连接时垃圾收集器在执行cURL的范围/函数/脚本的末尾工作。

不调用curl_close()的缺点取决于你的脚本如何工作/行为,如果你的脚本正在做一些使它保持打开/工作的东西,那么你正在使用资源,CPU周期,RAM和套接字,这些可能会或者可能会根据每种情况不相关,但我们同意这是一种尽快释放资源的良好做法。特别是如果您处于受限或非常有限的环境中,例如RAM和套接字可能不够丰富的共享主机。如果您使用多个选项,例如curl_multi_init,curl_multi_exec等,这可能会加剧。

关于它是否是一个开放的连接,我不完全确定,但我想你可以使用curl_getinfo获得的一些信息并比较,例如与传输的大小和你已经拥有的或时间相比较正在采取

答案 1 :(得分:0)

curl句柄是一种资源,使用is_resource可以帮到你。 即使php确实关闭了句柄,我也不认为调用curl_close()有任何缺点。 请注意:我不知道PHP是否自行关闭了curl句柄,但我个人认为curl_close是结束事情的好方法。 :)

快乐的编码!!