PHP发送HTTP请求的6种方法,知道4种算你牛


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

<?php

$url='https://wenda.shukaiming.com/';

echo file_get_contents($url);

?>

方法2: 用fopen打开url, 以get方式获取内容:

<?php

//r标识read,即标识只读

$fp =fopen($url,'r');

stream_get_meta_data($fp);

while(!feof($fp)){

$body.=fgets($fp,1024);

}

echo $body;

fclose($fp);

?>

方法3:用 file_get_contents函数,以post方式获取url

<?php

$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('https://wenda.shukaming.com',false,$context);

echo $html;

?>

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

<?php

functionget_url ($url,$cookie=false)

{

$url =parse_url($url);

$query =$url[path].”?”.$url[query];

echo $query;

$fp =fsockopen($url[host],$url[port]?$url[port]:80,$errno,$errstr,30);

if(!$fp){

returnfalse;

}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

functionGetUrlHTML($url,$cookie=false)

{

$rowdata =get_url($url,$cookie);

if($rowdata)

{

$body=stristr($rowdata,”rnrn”);

$body=substr($body,4,strlen($body));

return$body;

}

returnfalse;

}

?>

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

<?php

functionHTTP_Post($URL,$data,$cookie,$referrer="")

{

// parsing the given URL

$URL_Info=parse_url($URL);

// Building referrer

if($referrer=="")// if not given use this 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扩展

<?php

$ch =curl_init();

$timeout =5;

curl_setopt ($ch,CURLOPT_URL,'http://wenda.shukaiming.com');

curl_setopt ($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,$timeout);

$file_contents =curl_exec($ch);

curl_close($ch);

echo $file_contents;

?>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP支持多HTTP请求方法,包括常见的GET、POST、PUT、DELETE等。下面是各方法的简要介绍: 1. GET方法:用于从服务器获取资源,通常将参数附加在URL末尾发送请求。 ```php $url = 'http://example.com/api/resource'; $response = file_get_contents($url); ``` 2. POST方法:用于向服务器提交数据,通常用于表单提交等操作。 ```php $url = 'http://example.com/api/resource'; $data = array('key1' => 'value1', 'key2' => 'value2'); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($data), ), ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); ``` 3. PUT方法:用于向服务器更新资源,通常用于更新已有的数据。 ```php $url = 'http://example.com/api/resource'; $data = array('key1' => 'new_value1', 'key2' => 'new_value2'); $options = array( 'http' => array( 'method' => 'PUT', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($data), ), ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); ``` 4. DELETE方法:用于从服务器删除资源,通常用于删除已有的数据。 ```php $url = 'http://example.com/api/resource'; $options = array( 'http' => array( 'method' => 'DELETE', ), ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); ``` 注意:以上示例使用`file_get_contents()`函数发送HTTP请求,也可以使用其他HTTP请求库,如cURL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值