专栏首页PHPer技术栈PHP中获取远程文件的三种方法

PHP中获取远程文件的三种方法

1. file_get_contents

<?php 
  $url = 'http://www.xxx.com/';
  $contents = file_get_contents($url);
  //如果出现中文乱码使用下面代码
  //$getcontent = iconv(“gb2312″, “utf-8″,file_get_contents($url));
  //echo $getcontent;
  echo $contents;
?>

2. curl

<?php
    url = “http://www.xxx.com/”;
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//在需要用户检测的网页里需要增加下面两行
    //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.”:”.US_PWD);
    $contents = curl_exec($ch);
    curl_close($ch);
    echo $contents;
?>

3. fopen->fread->fclose

<?php
  $handle = fopen (“http://www.xxx.com/”, “rb”);
  $contents = “”;
  do {
    $data = fread($handle, 8192);
      if (strlen($data) == 0){
        break;
      }
      $contents .= $data;
    } while(true);
    fclose ($handle);
  echo $contents; 
?>

file_get_contents、fopen、curl区别分析:

1.使用file_get_contents和fopen必须空间开启allow_url_fopen。

方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。

2.使用curl必须空间开启curl。

方法:WIN下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;

Linux下要安装curl扩展。

本文分享自微信公众号 - PHPer技术栈(Bule_sky-W)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信小程序获取unionid与openid

    unionid来区分用户的唯一性,在相同微信开放平台帐号下的移动应用、网站应用、小程序、公众号,用户的unionid是唯一的。也就是说,同一用户,对同一个微信开...

    ITer.996
  • 微信小程序模板消息实现(PHP+ 小程序)

    参考官方文档和部分资料,总结小程序模板消息推送以及相关注意事项,楼主踩过的坑,特来与大家分享。

    ITer.996
  • 文件上传413 错误解决办法

    可以选择在http{ }中设置:client_max_body_size 20m;

    ITer.996
  • Dubbo剖析-负载均衡

    在服务提供方是集群的时候,为了避免大量请求一直落到一个或者几个服务提供方机器上,从而使这些机器负载很高,甚至打死,需要做一定的负载均衡策略。Dubbo 提供了多...

    加多
  • 一道让我怀疑人生的题

    之前经常有人说刚开始刷题时会怀疑人生,觉得每道题都很难,问这正不正常。其实这是正常的,算法本来就是诸多智慧的结晶,何况能拿出来面试的题目都不容易,哪有人万事通,...

    写代码的阿宗
  • 数据结构之Trie树

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

    大黄大黄大黄
  • 深入浅出 RunLoop(五):RunLoop 与 NSTimer

    如果我们是通过以下方法创建的NSTimer,是自动添加到RunLoop的默认模式下的

    师大小海腾
  • 一文了解web无状态会话token技术JWT

    目前web开发前后端已经算非常的普及了。前后端分离要求我们对用户会话状态要进行一个无状态处理。我们都知道通常管理用户会话是session。用户每次从服务器认证成...

    码农小胖哥
  • AI+基因测序,谷歌不久前免费开放最尖端的深度学习技术让编辑基因?

    2017年12月4号谷歌大脑开源了将两大风口尖端科技融合的DeepVariant平台,这代表什么意义? 首先我们回顾下什么是DeepVariant技术? ? 新...

    企鹅号小编
  • VSCode前端必备插件,有可能你装了却不知道如何使用?

    在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code。

    桃翁

扫码关注云+社区

领取腾讯云代金券