php三种post数据方法Curl、socket、file_get_contents 有什么区别
三种方法都要加上 stream_set_blocking 才可以实现无须等待马上返回结果吗?
一般什么情况下用哪种方法,有没有人总结过的,谢啦。。
拖拉机,公交车,轿车 都是运输工具,他们的轮子在转动上有什么区别
没有区别.
curl 不需要加你说的那个什么东东...
curl无脑
socket有脑
file_get_content+stream_context_create半脑残
stream_set_blocking是设置文件描述符非阻塞,可作用于regular files and socket streams,除非你用select+socket,否则对PHP这个语言编程没有益处,也许你期待的是stream_set_timeout。
file_get_contents、curl、socket 三者按顺序来说,一个比一个用起来复杂,灵活度更高。
file_get_contents 只能用一个 url 来获取目标内容(其实是不能做 post 的),基本没什么参数可以控制。
curl 用于在 HTTP/FTP 协议的层级上进行通信,相应地,支持协议规定的一些参数控制。
socket 则是在 TCP 协议的层级上进行通信,当然也有相应的控制参数。如果仅是实现常规的 HTTP 功能,就不要直接用 socket 了。
至于你提到的 stream_set_blocking,应该只在 socket 里面能用到。当 PHP 作为一种 web 页面脚本语言的时候,“无须等待马上返回”这个特性基本没什么用处。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,
分享
给大家,欢迎
技术交流
:)
1、你所谓的三种方式都不可能出现“无须等待马上返回"
因为他们都只在执行完毕后才会返回
2、对于你#8的1,由于对方没有返回,所以你不能说“发送成功”。而只能说“已发送”。注意这是用本质的区别的
3、对于你#8的2,由于php内置函数并不提供他说的功能。所以你若不采取一些非常规的手段的话,是做不到的
file_get_contents一般用来获取不需要登录的数据