`
baiyuxiong
  • 浏览: 177984 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

fsockopen读取、发送cookie及注意事项 -代码示例

    博客分类:
  • php
PHP 
阅读更多
代码:

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\r\n";
	$header.= "Host : {$host}\r\n";
	$header.= "Content-type: application/x-www-form-urlencoded\r\n";
	$header.= "Content-Length:".strlen($data)."\r\n";
	$header.= "Connection: close\r\n";
        //这里是用来写cookie的
	if (!empty($cookieStr)) {
		$header.="Cookie: ".$cookieStr."\r\n";
	}
	//注意下面开头还加了个换行,结尾是两个换行
	$header.= "\r\n{$data}\r\n\r\n";
	
	//写数据
	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;
}

分享到:
评论
3 楼 baiyuxiong 2010-11-10  
用到的时候自然会想起来的,呵呵


hjb510 写道
  不错,是篇好文章啊!现在只知道在抓取网页的时候有用,不知道在别的什么地方还可以使用啊?

有空介绍下使用场景也不错啊!学习学习!

2 楼 hjb510 2010-11-10  
  不错,是篇好文章啊!现在只知道在抓取网页的时候有用,不知道在别的什么地方还可以使用啊?

有空介绍下使用场景也不错啊!学习学习!
1 楼 mimang2007110 2010-10-19  
我再来深度支持一下牛大哥,O(∩_∩)O~ 

相关推荐

    fsockopen get/post 表单及上传文件例子

    注意,文件内容是通过`file_get_contents`读取的,并添加到POST数据中。 以上就是`fsockopen`在处理GET、POST请求和文件上传时的基本用法。虽然`cURL`库通常更适合这些任务,但在某些场景下,如自定义网络协议或低...

    fsockopen用法.txt

    ### fsockopen函数详解 在PHP中,`fsockopen`是一个非常强大的函数,用于创建一个网络连接(套接字)到指定的主机和端口。这个函数在处理网络通信时特别有用,尤其是在进行HTTP请求、FTP操作或任何需要与远程服务器...

    php使用fsockopen函数发送post,get请求获取网页内容的方法

    本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下:$post =1; $url = parse_url($url); $host =’//www.jb51.net’; $path ...

    ICQ网关发送手机短信

    根据提供的文件信息,本文将详细解析“ICQ网关发送手机短信”的原理及其实现方法。此技术基于ASP(Active Server Pages)环境,利用ICQ(I Seek You)的网络服务来实现短信发送功能。 ### ICQ网关发送手机短信简介 ...

    php源码 fsockopen获取网页内容实例详解

    通过fsockopen函数,我们可以向服务器发送请求,并接收服务器返回的数据。 ### PHP fsockopen 函数说明 fsockopen函数用于创建一个网络连接或Unix域套接字。函数原型如下: ```php fsockopen(string hostname, int...

    php定时计划任务与fsockopen持续进程实例

    ### 注意事项 - 当使用fsockopen进行远程连接时,应确保远程主机地址正确,并且端口号也是开放可用的。 - 在使用fsockopen进行网络请求时,应当注意设置合理的超时时间,以避免长时间的网络延迟影响到脚本的执行效率...

    php发送email

    ### 注意事项 - 在实际应用中,使用PHPMailer等库来发送邮件更为方便和安全,因为它们处理了大部分细节并提供了错误处理机制。 - SMTP服务器的配置(如地址、端口、身份验证需求)对于能否成功发送邮件至关重要。 -...

    sendemai(PHP发送邮件代码).doc

    根据提供的文档信息,本文将详细解析“sendemai(PHP发送邮件代码)”中的关键知识点,包括PHP如何通过SMTP协议实现电子邮件的发送过程。 ### 标题分析:“sendemai(PHP发送邮件代码)” 此标题直接表明了文档的主要...

    php自动提交表单的方法(基于fsockopen与curl)_.docx

    在这段代码中,cURL初始化一个会话(curl_init),设置URL、POST参数、用户代理、返回结果到变量而不是直接输出(CURLOPT_RETURNTRANSFER)以及允许重定向(CURLOPT_FOLLOWLOCATION)。然后执行请求(curl_exec),...

    php利用fsockopen GET/POST提交表单及上传文件

    在实际使用fsockopen进行文件上传时,需要特别注意文件内容的编码格式,包括正确的分隔符、文件名和文件类型等信息。这是确保文件能够正确上传的关键所在。同时,对于大文件上传,还要考虑内存使用以及上传的稳定性...

    PHPMailer邮件发送源码修正版+邮件发送实例+教程

    目前记得服务器PHP环境不能禁止fsockopen函数,否则邮件发送不了,但这问题也有解决的办法。总之,一开始使用,总有不顺,由于时间久远,现在想来,也不知道具体改了什么。所以,将现在正在使用的PHPMailer目录文件...

    基于php socket(fsockopen)的应用实例分析

    客户端代码通过`fsockopen`打开到服务器的连接,构造HTTP头部信息并发送,然后读取服务器的响应。 使用`fsockopen`的场景广泛,它可以用于执行HTTP POST或GET请求、执行FTP操作、与其他服务器进行数据交换等。在...

    利用PHP fsockopen 模拟POST/GET传送数据的方法

    在这段代码中,`sock_get` 函数接受目标URL和查询参数数组,构建GET请求,并通过fsockopen与远程服务器建立连接,发送请求并打印返回的响应。 模拟POST请求的方法与GET类似,但请求方法和数据格式有所不同。在POST...

    php 伪造IP和HTTP-REFERER的方法

    - **解释**: 这段代码通过`fsockopen()`创建一个套接字连接,然后构建请求头并发送。其中通过`GET`方法指定请求的目标URL,并设置`Host`和`Referer`字段。 #### IP地址伪造 除了HTTP_REFERER外,有时还需要伪造IP...

    PHP SMTP发送类

    示例代码可能如下: ```php require_once 'Smtp.class.php'; $mail = new Smtp(); $mail-&gt;setFrom('from@example.com', '发件人'); $mail-&gt;addTo('to@example.com', '收件人'); $mail-&gt;setSubject('测试邮件'); $...

    PHP邮件发送类及实例(无需组件支持)

    本文将深入探讨如何使用PHP实现邮件发送功能,重点是介绍一个无需额外组件支持的SMTP邮件发送类。 首先,我们来看`mail.inc...通过理解类的内部工作原理和使用示例,可以更好地定制邮件发送功能,满足不同项目的需求。

    php中fsockopen用法实例

    - 读取和写入数据时,如果使用了回车换行符(\r\n),一定要注意其格式与服务器端是否一致,否则可能会造成服务器解析错误。 - 设置超时时间可以帮助程序在连接长时间未响应时,避免无限期等待。 - 使用完毕后,应...

    php 模拟get_headers函数的代码示例

    首先,我们分析提供的代码示例。这个模拟的 `get_headers()` 函数通过以下步骤实现: 1. 检查 `get_headers()` 函数是否存在。如果不存在,就执行自定义的函数。 2. 使用 `parse_url()` 函数解析输入的URL,提取...

Global site tag (gtag.js) - Google Analytics