2018年04月6日网站服务器迁移完成……

php 远程请求 获取 数据内容

php 苏 demo 1261℃ 0评论

1、用file_get_contents 以get方式获取内容:

<?php 
$url = 'http://www.ido321.com/' ; 
$html  =  file_get_contents ( $url ); 
echo   $html ; 
?>

2、用fopen打开url,用get方式获取

$fp  =  fopen ( $url ,  'r' );
stream_get_meta_data( $fp );
while (! feof ( $fp )) {
    $result  .=  fgets ( $fp , 1024);
}
echo   "url body: $result" ;
fclose( $fp );

3、用file_get_contents 以post方式获取内容:

$data = array('foo' => 'bar');
$data = http_build_query($data);
$opts = array(
    'http' => array(
        'method' => 'POST',
        'header' => "Content-type: application/x-www-form-urlencodedrn" . 'Content-Length: ' . strlen($data) . 'rn', 'content' => $data)
);
$context = stream_context_create($opts);
$html = file_get_contents('http://localhost/e/admin/test.html', false, $context);
echo $html;

4、用fsockopen函数打开url,以get方式获取完整的数据,包括header和body,fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启

function  get_url($url, $cookie = false)
{
    $url = parse_url($url);
    $query = $url [path] . '?' . $url [query];
    echo 'Query:' . $query;
    $fp = fsockopen($url [host], $url [port] ? $url [port] : 80, $errno, $errstr, 30);
    if (!$fp) {
        return false;
    } else {
        $request = 'GET $query HTTP/1.1rn';
        $request .= 'Host: $url[host]rn';
        $request .= 'Connection: Closern';
        if ($cookie) $request .= 'Cookie:  $cookien';
        $request .= 'rn';
        fwrite($fp, $request);
        while (!@ feof($fp)) {
            $result .= @ fgets($fp, 1024);
        }
        fclose($fp);
        return $result;
    }
}

//获取url的html部分,去掉header  
function  GetUrlHTML($url, $cookie = false)
{
    $rowdata = get_url($url, $cookie);
    if ($rowdata) {
        $body = stristr($rowdata, 'rnrn');
        $body = substr($body, 4, strlen($body));
        return $body;
    }

    return false;
}

5、 用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body

function  HTTP_Post($URL, $data, $cookie, $referrer = '')
{
// parsing the given URL  
    $URL_Info = parse_url($URL);

// Building referrer  
    if ($referrer == '')  // if not given use this script as referrer  
        $referrer = '111';

// making string from $data  
    foreach ($data as $key => $value)
        $values [] = '$key=' . urlencode($value);
    $data_string = implode('&', $values);

// Find out which port is needed – if not given use standard (=80)  
    if (!isset($URL_Info ['port']))
        $URL_Info ['port'] = 80;

// building POST-request:  
    $request .= "POST " . $URL_Info ['path'] . " HTTP/1.1n";
    $request .= "Host: " . $URL_Info ['host'] . "n";
    $request .= "Referer: $referern";
    $request .= "Content-type: application/x-www-form-urlencodedn";
    $request .= 'Content-length: ' . strlen($data_string) . "n";
    $request .= 'Connection: closen';
    $request .= 'Cookie: $cookien';
    $request .= 'n';
    $request .= $data_string . 'n';
    $fp = fsockopen($URL_Info ['host'], $URL_Info ['port']);
    fputs($fp, $request);
    while (!feof($fp)) {
        $result .= fgets($fp, 1024);
    }
    fclose($fp);
    return $result;
}

6、 使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, ‘http: //www.ido321.com/');  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$file_contents = curl_exec($ch); 
curl_close($ch); 
echo $file_contents;

 

 

 

 

 

 

 

 

 

 

打赏

转载请注明:苏demo的别样人生 » php 远程请求 获取 数据内容

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情