zoukankan      html  css  js  c++  java
  • fsockopen读取、发送cookie及注意事项 -代码示例

    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 = "POST ".$url." HTTP/1.1
    ";
    	$header.= "Host : {$host}
    ";
    	$header.= "Content-type: application/x-www-form-urlencoded
    ";
    	$header.= "Content-Length:".strlen($data)."
    ";
    	$header.= "Connection: close
    ";
            //这里是用来写cookie的
    	if (!empty($cookieStr)) {
    		$header.="Cookie: ".$cookieStr."
    ";
    	}
    	//注意下面开头还加了个换行,结尾是两个换行
    	$header.= "
    {$data}
    
    ";
    	
    	//写数据
    	fwrite($conn,$header);
    	
        //这里读cookie
    	$cookieStr=array();
        //下面的判断,读到空行时,说明头已经结束了,接下来是内容。
        while( ($line=trim(fgets($conn))) != "" )   
            {   
    			$header.=$line; /*   */
                if(strstr($line,"Set-Cookie:"))   
                {   
                    list($coo,$cookieLine)=explode(" ",$line);
                    $cookieStr[] = $cookieLine;
                } 
            } 
        //if($len <= 0)   
        //{   
        //    return false; 
       // } 
        //读数据
        //$body=fread($conn,$len); 
        while (!feof($conn)) {
    	  $body .= fread($conn, 8192);
    	}
          
    	fclose($conn);
    	
    	$result['body'] = $body;
    	$result['cookieArr'] = $cookieStr;
    	
    	return $result;
    }
    

     转自:http://baiyuxiong.iteye.com/blog/786214

  • 相关阅读:
    php趣题小记
    git常用语法
    Go 使用小记
    小程序 显示对话框 确定-取消
    小程序 后退一页
    Vue脚手架使用步骤 2.9.6版本
    小程序 后台返回的对象数组(每个数组添加一个新的属性值)
    小程序 添加对象
    小程序图表wx-chart
    微信小程序之自定义select下拉选项框组件
  • 原文地址:https://www.cnblogs.com/mengdejun/p/6136415.html
Copyright © 2011-2022 走看看