A-A+

php访问url的四种方式

2016年03月30日 php 暂无评论 阅读 1,310 次

php访问url的四种方式

1.fopen方式
//访问指定URL函数

  1. function access_url($url) {
  2.     if ($url==''return false;
  3.     $fp = fopen($url'r'or exit('Open url faild!');
  4.     if($fp){
  5.     while(!feof($fp)) {
  6.         $file.=fgets($fp)."";
  7.     }
  8.     fclose($fp);
  9.     }
  10.     return $file;
  11. }

2.file_get_contents方式(打开远程文件的时候会造成CPU飙升。file_get_contents其实也可以post)

  1. $content = file_get_contents("http://www.google.com");

3.curl方式

  1. function curl_file_get_contents($durl){
  2.     $ch = curl_init();
  3.     curl_setopt($ch, CURLOPT_URL, $durl);
  4.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回  
  5.     curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回  
  6.     $r = curl_exec($ch);
  7.     curl_close($ch);
  8.     return $r;
  9. }

4.fsockopen方式(只能获取网站主页信息,其他页面不可以)

  1. $fp = fsockopen("www.example.com", 80, $errno$errstr, 30);
  2. if (!$fp) {
  3. echo "$errstr ($errno)<br />\n";
  4. else {
  5. $out="GET / HTTP/1.1\r\n";
  6. $out.="Host: www.example.com\r\n";
  7. $out.="Connection: Close\r\n\r\n";
  8.     fwrite($fp$out);
  9. while (!feof($fp)) {
  10. echo fgets($fp, 128);
  11.     }
  12.     fclose($fp);
  13. }

php请求url并接收返回值:

  1. $url = 'https:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET';
  2. var_dump($url);
  3. $result = file_get_contents($url);
  4. $jsonArray = json_decode($result,true);
  5. var_dump($jsonArray);

 

  1. 方法1: 用file_get_contents 以get方式获取内容
  2. [php] view plaincopyprint?
  3. <?php
  4. $url='http://www.domain.com/';  
  5. $html = file_get_contents($url);
  6. echo $html;
  7. ?>
  8. 方法2: 用fopen打开url, 以get方式获取内容
  9. [php] view plaincopyprint?
  10. <?php
  11. $fp = fopen($url, 'r');
  12. //返回请求流信息(数组:请求状态,阻塞,返回值是否为空,返回值http头等)  
  13. [php] view plaincopyprint?
  14. stream_get_meta_data($fp);
  15. [php] view plaincopyprint?
  16. while(!feof($fp)) {
  17. $result .= fgets($fp, 1024);
  18. }
  19. echo "url body: $result";
  20. fclose($fp);
  21. ?>
标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利  京ICP备14060653号 Theme  Ality

用户登录