6 способов для PHP отправлять HTTP-запросы, знайте 4 способа посчитать вас

PHP

Способ 1: Использованиеfile_get_contentsПолучите содержимое, выполнив команду get:

                                
  1. <?php

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

  3. echo file_get_contents($url);

  4. ?>

скопировать код

Способ 2: откройте URL-адрес с помощью fopen и получите содержимое с помощью get:

  1. <?php

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

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

  4. stream_get_meta_data($fp);

  5. while(!feof($fp)) {

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

  7. }

  8. echo $body;

  9. fclose($fp);

  10. ?>

скопировать код

Способ 3: Использованиеfile_get_contentsфункция для получения URL в сообщении

                                    
  1. <?php

  2. $data = array (‘foo' => ‘bar');

  3. $data = http_build_query($data);

  4. $opts = array (

  5. 'http' => array (

  6. 'method' => 'POST',

  7. 'header'=> 'Content-type: application/x-www-form-urlencodedrn' .

  8. 'Content-Length: ' . strlen($data) . '\r\n',

  9. 'content' => $data

  10. )

  11. );

  12. $context = stream_context_create($opts);

  13. $html = file_get_contents('https://wenda.shukaming.com', false, $context);

  14. echo $html;

  15. ?>

скопировать код

Способ 4: откройте URL-адрес с помощью функции fsockopen и получите полные данные в методе get, включая заголовок и тело, для fsockopen требуется PHP.iniallow_url_fopenвариант на

                                        
  1. <?php

  2. function get_url ($url,$cookie=false)

  3. {

  4. $url = parse_url($url);

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

  6. echo $query;

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

  8. if (!$fp) {

  9. return false;

  10. } else {

  11. $request = "GET $query HTTP/1.1\r\n";

  12. $request .= "Host: $url[host]\r\n";

  13. $request .= "Connection: Close\r\n";

  14. if($cookie) $request.="Cookie:  $cookien";

  15. $request.="\r\n";

  16. fwrite($fp,$request);

  17. while(!@feof($fp)) {

  18. $result .= @fgets($fp, 1024);

  19. }

  20. fclose($fp);

  21. return $result;

  22. }

  23. }

  24. //获取url的html部分,去掉header

  25. function GetUrlHTML($url,$cookie=false)

  26. {

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

  28. if($rowdata)

  29. {

  30. $body= stristr($rowdata,”\r\n\r\n”);

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

  32. return $body;

  33. }

  34. return false;

  35. }

  36. ?>

скопировать код

Способ 5. Откройте URL-адрес с помощью функции fsockopen и получите полные данные с помощью POST, включая заголовок и тело.

  1. <?php

  2. function HTTP_Post($URL,$data,$cookie, $referrer="")

  3. {

  4. // parsing the given URL

  5. $URL_Info=parse_url($URL);

  6. // Building referrer

  7. if($referrer=="") // if not given use this script as referrer

  8. $referrer="111";

  9. // making string from $data

  10. foreach($data as $key=>$value)

  11. $values[]="$key=".urlencode($value);

  12. $data_string=implode("&",$values);

  13. // Find out which port is needed – if not given use standard (=80)

  14. if(!isset($URL_Info["port"]))

  15. $URL_Info["port"]=80;

  16. // building POST-request:

  17. $request.="POST ".$URL_Info["path"]." HTTP/1.1\n";

  18. $request.="Host: ".$URL_Info["host"]."\n";

  19. $request.="Referer: $referer\n";

  20. $request.="Content-type: application/x-www-form-urlencodedn";

  21. $request.="Content-length: ".strlen($data_string)."\n";

  22. $request.="Connection: closen";

  23. $request.="Cookie:  $cookien";

  24. $request.="\n";

  25. $request.=$data_string."\n";

  26. $fp = fsockopen($URL_Info["host"],$URL_Info["port"]);

  27. fputs($fp, $request);

  28. while(!feof($fp)) {

  29. $result .= fgets($fp, 1024);

  30. }

  31. fclose($fp);

  32. return $result;

  33. }

  34. ?>

скопировать код

Способ 6: Используйте библиотеку curl.Перед использованием библиотеки curl вам может потребоваться проверить, было ли открыто расширение curl в php.ini.

  1. <?php

  2. $ch = curl_init();

  3. $timeout = 5;

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

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

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

  7. $file_contents = curl_exec($ch);

  8. curl_close($ch);

  9. echo $file_contents;

  10. ?>

скопировать код

Больше обмена, следите за обновлениями

Замечательная бесконечная группа Q: 374155314

Категории