PHP实现模仿socket请求返回页面的方法_php技巧

本文实例讲述了PHP实现模仿socket请求返回页面的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

<?php
 $url = "www.XXXX.com";  //自己做替换
 $parse = parse_url($url);  //对URL进行解析,返回起组成部分。
 $host = $parse['host'];
 $path = $parse['path'];
 $port = 80;
 $timeout = 80;
 $fp = @fsockopen($host, $port, $errno, $errstr, $timeout);  //打开socket链接
 if (!$fp){
     echo $errno."--".$errstr;  //如果错误,则返回错误代码和错误信息
 } else {
     $out = "POST $path HTTP/1.1\r\n";  //以下是HTTP请求头信息
     $out .= "Host: ".$host."\r\n";
     $out .= "Accept: */*\r\n";
     $out .= "Connection: Close\r\n";
     $out .= "Cookie: $cookie\r\n\r\n";
   
     @fwrite($fp, $out);  //把请求信息写到链接中
     $status = stream_get_meta_data($fp);
     if(!$status['timed_out']) {    
                 while (!feof($fp)) { 
                     if(($header = @fgets($fp)) && ($header == "\r\n" ||  $header == "\n")) {    
                         break;    
                     }    
                 }    
        
                 $stop = false;    
                 while(!feof($fp) && !$stop) {    
                     $data = fread($fp,8192);      //8192为可返回字节数
                     $return .= $data;        
                 }    
             }    
     fclose($fp);
     print_r($return);
 }

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2024-12-22 16:16:30

PHP实现模仿socket请求返回页面的方法_php技巧的相关文章

php基于socket实现SMTP发送邮件的方法_php技巧

本文实例讲述了php基于socket实现SMTP发送邮件的方法.分享给大家供大家参考.具体分析如下: php采用socket通过SMTP发送邮件. 用的是php的php-sockets扩展,可以发送纯文本和html格式的邮件.代码如下: 复制代码 代码如下: <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件 * @example * $config = array( *       "from" => "*****", * 

php禁止浏览器使用缓存页面的方法_php技巧

本文实例讲述了php禁止浏览器使用缓存页面的方法.分享给大家供大家参考.具体方法如下: 页面缓存在有的时候是不需要的,我们可以禁止浏览器缓存页面. 在PHP中可以轻松的使用下面的语句实现禁止页面缓存,但比较难记特整理下,方便大家使用. php代码如下: 复制代码 代码如下: <?php // 设置此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可. header ( " Expires: Mon, 26 Jul 1970 05:00:00 GMT " );  //

PHP使用ob_start生成html页面的方法_php技巧

本文实例讲述了PHP使用ob_start生成html页面的方法.分享给大家供大家参考.具体方法分析如下: ob_start([string output_callback])- 打开输出缓冲区 所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息. ob_end_flush - 结束(发送)输出缓冲区的内容,关闭输出缓冲区 使用output control 函数可以让自由控制脚本中数据的输出,这在我们想在header之前输出时很有用. 复制代码 代码如

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

本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $post =1; $url = parse_url($url); $host ='http://www.jb51.net'; $path ='/'; $query ='?action=phpfensi.com'; $port =80;   if($post) {   $out = "post $path http/1.0 ";  

实现PHP多线程异步请求的3种方法_php技巧

在网上看过很多版本的PHP异步请求方法,这里简单总结几个常用方法分享给大家 1.用CURL实现一步请求 CURL扩展是我们在开发过程中最常用的一种方法,他是一个强大的HTTP命令行工具,可以模拟POST/GET等HTTP请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. 示例: 复制代码 代码如下: <?php $cl = curl_init(); $curl_opt = array(CURLOPT_URL, 'http://www.uncletoo.com/de

PHP实现根据设备类型自动跳转相应页面的方法_php技巧

随着当今移动设备的普及,上网已经比过去更加方便.针对Android智能手机,iPhone/iPad等移动终端,很多网站都相继推出了针对电脑和这类手机等移动设备访问的网页.本文所述的实例代码就可以实现根据这些移动设备终端而自动跳转到适合它们浏览的页面.即判断PC端或手机站智能端并跳转. 完整的实例代码如下: <?php $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $iphone = (strpos($agent, 'iphone')) ? t

php curl 获取https请求的2种方法_php技巧

今天一个同事反映,使用curl发起https请求的时候报错:"SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" 很明显,验证证书的时候出现了问题. 使用curl如果想发起的https请求正常的话有2种做法: 方法一.设定为不验证证书和host.

PHP CURL获取返回值的方法_php技巧

在CURL中有一个参数 CURLOPT_RETURNTRANSFER : 复制代码 代码如下: curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 默认是 0 直接返回获取的输出的文本流,有时候,我们要拿返回值来做判断或者做其他用途的话那就不太好了. 幸好CURLOPT_RETURNTRANSFER  可以设置,如果设置成CURLOPT_RETURNTRANSFER 1: 复制代码 代码如下: curl_setopt($ch, CURLOPT_RETURNT

解决file_get_contents无法请求https连接的方法_php技巧

错误: Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? 解决方案有3: 1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了. 2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访