设为首页收藏本站

UNIX技术社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: console
查看: 1992|回复: 0

伪异步请求url, 只发送请求,并不接收目标输出内容

[复制链接]
发表于 2013-7-12 09:46:17 | 显示全部楼层 |阅读模式
  1. /**
  2. * id   : exam.php
  3. * desc :
  4. */
  5. set_time_limit(0);
  6. ini_set('memory_limit', '256M');
  7. date_default_timezone_set('Etc/GMT-8');
  8. error_reporting(E_ALL);

  9. /**
  10. * 伪异步请求url, 只发送请求,并不接收目标输出内容
  11. * 如果目标url为php脚本, 只需在脚本开始处调用 ignore_user_abort
  12. * @param   $url
  13. * @param   $timeout
  14. * @param   $sync
  15. * @result  $mixd   true all ok,false error
  16. */
  17. function async_http_get($url, $timeout = 3, $sync = false)
  18. {
  19.     $ret = false;
  20.     is_numeric($timeout) || $timeout = 3;
  21.     $url = parse_url($url);
  22.     $host = isset($url['host']) ? $url['host'] : '';
  23.     $port = isset($url['port']) ? $url['port'] : 80;
  24.     $path_all = $url['path'].(isset($url['query']) ? ('?'.$url['query']) : '').(isset($url['fragment'])?('#'.$url['fragment']) : '');
  25.     //socket
  26.     $errno = $errstr = null;
  27.     $httpfp = @fsockopen($host, $port, $errno, $errstr, $timeout);
  28.     if (!$httpfp)
  29.         return $ret;
  30.     @stream_set_blocking($httpfp, true);
  31.     @stream_set_timeout($httpfp, $timeout);
  32.     $httpHeader = "GET $path_all HTTP/1.0\r\n";
  33.     $httpHeader .= "Host: $host:$port\r\n";
  34.     $httpHeader .= "Accept: */*\r\n";
  35.     $httpHeader .= "Accept-Language: zh-cn\r\n";
  36.     $httpHeader .= "Content-Type: application/x-www-form-urlencoded\r\n";
  37.     isset($_SERVER['HTTP_USER_AGENT']) && ($httpHeader .= "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n");
  38.     $httpHeader .= "Connection: Close\r\n\r\n";
  39.     fwrite($httpfp, $httpHeader);
  40.     $ret = true;
  41.     if ($sync)
  42.     {
  43.         $ret = '';
  44.         while(!feof($httpfp))
  45.             $ret .= fread($httpfp, 1024);
  46.     }
  47.     fclose($httpfp);
  48.     return $ret;
  49. }

  50. echo async_http_get('http://www.baidu.com/search?q=ww',3,true);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表