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

家电修理 2023-07-16 19:16www.caominkang.com电器维修

  1. file_get_contents

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

2. curl


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

3. fopen->fread->fclose

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


file_get_contents、fopen、curl区别分析


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


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


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


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


Linux下要安装curl扩展。

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by