查看: 7916|回复: 0
打印 上一主题 下一主题

使用PHP读取远程文件

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-8 09:13:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
使用php读取远程文件有4种方式:

fopen()
file_get_contents()
curl函数
socket函数
fopen()与file_get_contents()需要在php.ini配置文件中激活allow_url_fopen选项。

fopen()方式

$handle = fopen ("http://www.example.com/", "rb");
$contents = "";
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
file_get_contents()方式

$contents = file_get_contents('http://www.example.com/');
curl函数

if (function_exists('curl_init')){
   $ch=curl_init();
   curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; )');
   $content=curl_ex ec($ch);
   curl_close($ch);
}
socket方式

function getRemoteFile($url)
{
   $parsedUrl = parse_url($url);
   $host = $parsedUrl['host'];
   if (isset($parsedUrl['path'])) {
      $path = $parsedUrl['path'];
   } else {
      $path = '/';
   }
  
   if (isset($parsedUrl['query'])) {
      $path .= '?' . $parsedUrl['query'];
   }
  
   if (isset($parsedUrl['port'])) {
      $port = $parsedUrl['port'];
   } else {
      $port = '80';
   }
  
   $timeout = 10;
   $response = '';
   $fp = @fsockopen($host, '80', $errno, $errstr, $timeout );
   if( !$fp ) {
      echo "连接$url失败";
   } else {
      fputs($fp, "GET $path HTTP/1.0\r\n" .
                 "Host: $host\r\n" .
                 "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1;) \r\n" .
                 "Accept: */*\r\n" .
                 "Accept-Language: zh-CN,zh;q=0.5\r\n" .
                 "Accept-Charset: GB-2312,utf-8;q=0.7,*;q=0.7\r\n" .
                 "Keep-Alive: 300\r\n" .
                 "Connection: keep-alive\r\n" .
                 "Referer: http://$host\r\n\r\n");
  
      while ( $line = fread( $fp, 4096 ) ) {
         $response .= $line;
      }
  
      fclose( $fp );
      $pos      = strpos($response, "\r\n\r\n");
      $response = substr($response, $pos + 4);
   }
  
   return $response;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表