• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

phpHTTP请求

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
function request($host)
{
    $url = parse_url($host);
    $port = !empty($url['port']) ? $url['port'] : 80;
    $query = !empty($url['query']) ? sprintf('?%s', $url['query']) : null;
    $path = !empty($url['path']) ? $url['path'] : '/index.php';
    $request = $path . $query;
    $fp = fsockopen($url['host'], $port, $errno, $errstr, 30);
    $out = null;
    if (!$fp) {
        echo "$errstr ($errno)\n";
    } else {
        $out .= sprintf("GET %s HTTP/1.1%s", $request, chr(10));
        $out .= "User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36\r\n";
        $out .= sprintf("Host:%s%s", $url['host'], "\r\n");
        $out .= "Connection: Close\r\n\r\n";
        fwrite($fp, $out);
        $data = stream_get_contents($fp);
        fclose($fp);
    }
    $pos = strpos($data, "\r\n\r\n");
    $head = substr($data, 0, $pos); //http head
    $status = substr($head, 0, strpos($head, "\r\n")); //http status line
    $body = substr($data, $pos + 4, strlen($data) - ($pos + 4)); //page body
    if (preg_match("/^HTTP\/\d\.\d\s([\d]+)\s.*$/", $status, $matches)) {
        if (intval($matches[1]) / 100 == 2) {
            return unchunk($body);
        } else {
            return false;
        }
    } else {
        return false;
    }
    /** preg_match('/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/i', $data, $html);*/
}
function unchunk($result)
{
    return preg_replace_callback('/(?:(?:\r\n|\n)|^)([0-9A-F]+)(?:\r\n|\n){1,2}(.*?)' .
        '((?:\r\n|\n)(?:[0-9A-F]+(?:\r\n|\n))|$)/si', create_function('$matches',
        'return hexdec($matches[1]) == strlen($matches[2]) ? $matches[2] : $matches[0];'),
        $result);
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php正则取得页面所有的图片地址发布时间:2022-07-10
下一篇:
如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap