php fsockopen使用】的更多相关文章

php执行一段程序,有可能几毫秒就执行完毕,也有可能耗时较长.例如,用户下单这个事件,如果调用了些第三方服务进行发邮件.短信.推送等通知,可能导致前端一直在等待.而有的时候,我们并不关心这些耗时脚本的返回结果,只要执行就行了.这时候就需要采用异步的方式执行. 众所周知,PHP没有直接支持多线程这种东西.我们可以采用折衷的方式实现.这里主要说的就是fsockopen. 通过fsockopen发送请求并忽略返回结果,程序可以马上返回. 示例代码: $fp = fsockopen("www.examp…
function httpPost($url, $data,$cookieStr='') { $url_array = parse_url($url); $host = $url_array['host']; $port = isset($url_array['port'])?($url_array['port']):80; if(!($conn = fsockopen($host,$port,$errno, $errstr, 30))) { return false; } $header =…
$fp = fsockopen("www.jb51.net", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno) "; } else { $out = "get / http/1.1 "; $out .= "host: www.jb51.net"; $out .= "connection: close "; fwrite($fp, $o…
private function fsock_asy_do($get){ $fp = fsockopen("ssl://www.xxx.com", 443, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { stream_set_blocking($fp,0);//开启非阻塞模式 $out = "GET /".$get."…
一.如何禁用fsockopen()下面是两种常用的禁用fsockopen的方法.1.修改php.ini,将 disable_functions = 后加入 fsockopen2.修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off二.如何解决fsockopen函数被禁用1.如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen.具体操作:搜索程序中的字符串 fsockopen( 替换为…
了解完了HTTP头信息和URL信息的具体内容,我们开始尝试自己动手写一段头信息发送到服务器.Windows内置命令Telnet可以帮助我们发送简单的HTTP请求. 并且TELNET是一个特别灵活的工具,我们还可以用它进行FTP/SMTP/POP3/TCP等方式的简单请求. 通过开始菜单--运行--CMD命令进入DOS状态, 我们输入“Telnet 主机地址 端口(Telnet 192.168.1.99 80)” 来进入telnet命令状态(完全黑窗口,此时输出字符会出问题),我们按”ctrl”+…
最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起. 这是简单的将一个变量post到另外一个页面 $url = ''; $data = array('a'=> 'b'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_…
/** * 函数介绍: 用于post方式提交数据 * 输入参数: 完整url, 数据 * 返回值 : 接口返回值 */ function post_it($url, $data = '', $timeout = '6') { $urls = parse_url($url); if (!$urls) { return "-500"; } $port = isset($urls['port']) ? $urls['port'] : null; //isset()判断 if (!$port)…
index.php <?php function test() { $fp=fsockopen("localhost", 80, $errno, $errstr, 30); if(!$fp){ echo "$errstr ($errno)<br />"; } sleep(1); fputs($fp,"GET /test.php"); fclose($fp);} echo time().'<br>';test();ec…
前面小节 PHP抓取网络数据的6种常见方法 谈到了 fsockopen,curl与file_get_contents 的使用方法,虽然它们都能达到同一个使用目的,但是它们之间又有什么区别呢? 先谈谈curl与fsockopen. fsockopen 是比较底层的调用,属于网络系统的socket调用,而curl经过的包装支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文…