PHP中fopen,file_get_contents,curl函数的区别

PHP中fopen,file_get_contents,curl函数的区别

1.fopen/file_get_contents每次请求都做DNS查询,并不对DNS的信息进行缓存,而curl会对DNS的信息进行缓存,对统一域名下的网页或者图片的请求只需要一次DNS查询,这样大大减少了DNS的查询次数

2.fopen/file_get_contents在请求HTTP使用的是http_fopen_wrapper,而不会keepalilve,而curl可以,这样多次请求多个链接时,curl效率高

3.fopen/file_get_contents函数会受到php.ini中allow_url_open选项配置的影响,如果该配置关闭,则该函数失效,curl不受此影响

4.curl可以模拟多次请求,例如POST数据,表单提交,而fopen/file_get_contents只能使用get方式获取数据,file_get_contents获取数据时会把数据存储在一个字符串中,而curl存储在数组中

原文地址:https://www.cnblogs.com/xlz307/p/5130837.html