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

2022-10-11 21:57:58 159 0
魁首哥

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

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

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

fgets ($fp, 1024);}echo $body;fclose($fp);?>

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

‘bar’);$data = http_build_query($data);$opts = array (‘http’ => array (‘method’ => ‘POST’,’header’=> ‘Content-type: application/x-www-form-urlencodedrn’ .’Content-Length: ‘ . strlen ($data) . ‘\r\n’,’content’ => $data));$context = stream_context_create($opts);$ html = file_get_contents(‘ false, $context);echo $html;?>

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

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) {return false;} else {$ request = “GET $query HTTP/1.1\r\n”;$request .= “Host: $url[host]\r\n”;$request .= “Connection: Close\r\n”;if($cookie) $request.=”Cookie: $cookien”;$request.=”\r\n”;fwrite($fp,$request);while(!@feof($fp)) {$result .= @fgets($fp, 1024);}fclose($fp);return $result;}}//获取url的html部分,去掉headerfunction GetUrlHTML($url,$cookie=false){$rowdata = get_url($url,$cookie);if($rowdata){$body= stristr($rowdata,”\r\n\r\n”);$body=substr($body,4,strlen($body));return $body;}return false;}?>

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

$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.1\n”;$request.=”Host: “.$URL_Info[“host”].”\n”;$request.=”Referer: $referer\n”;$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扩展

  1. $ ch = curl_init();

  2. $timeout =5;

  3. curl_setopt ($ch, CURLOPT_URL,'

  4. curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);

  5. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

  6. $file_contents = curl_exec($ch);

  7. curl_close($ch);

  8. echo $file_contents;

  9. ?>

收藏
分享
海报
0 条评论
159
上一篇:「ES6基础」你需要知道的Array数组新方法(上) 下一篇:php之MySQL数据库优化策略的详解

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码