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存储在数组中
|