找回密码
 注册

QQ登录

只需一步,快速开始

查看: 188|回复: 0

PHP获取远程文件内容的函数

[复制链接]
发表于 2014-1-8 08:09:29 | 显示全部楼层 |阅读模式
PHP 获取远程文件内容的代码,后面有一些注释可以参考下,其实大家可以参考脚本之家发布的一些采集程序代码。
  1. <?
  2. /**
  3. 获取远程文件内容
  4. @param $url 文件http地址
  5. */
  6. function fopen_url($url)
  7. {
  8. if (function_exists('file_get_contents')) {
  9. $file_content = @file_get_contents($url);
  10. } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){
  11. $i = 0;
  12. while (!feof($file) && $i++ < 1000) {
  13. $file_content .= strtolower(fread($file, 4096));
  14. }
  15. fclose($file);
  16. } elseif (function_exists('curl_init')) {
  17. $curl_handle = curl_init();
  18. curl_setopt($curl_handle, CURLOPT_URL, $url);
  19. curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
  20. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);
  21. curl_setopt($curl_handle, CURLOPT_FAILONERROR,1);
  22. curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾邮件检查
  23. $file_content = curl_exec($curl_handle);
  24. curl_close($curl_handle);
  25. } else {
  26. $file_content = '';
  27. }
  28. return $file_content;
  29. }
  30. ?>
复制代码

相关解释:
1,ini_get : Returns the value of the configuration option as a string on success, or an empty string on failure(读取 php.ini 配置文件中的值)
2,; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On(配置文件中的内容)
3,fopen( "rb"): 在操作二进制文件时如果没有指定 'b' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。
注意: 为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。
注意: 再一次,为移植性考虑,强烈建议你重写那些依赖于 't' 模式的代码使其使用正确的行结束符并改成 'b' 模式。
4,strtolower -- Make a string lowercase
5,curl_init() :curl_init -- Initialize a cURL session(初始化一个cUrl会话)
resource curl_init ( [string url] )
Initializes a new session and return a cURL handle for use with the curl_setopt(), curl_exec(), and curl_close() functions.
url--If provided, the CURLOPT_URL option will be set to its value. You can manually set this using the curl_setopt() function.
Returns a cURL handle on success, FALSE on errors.
6,curl_setopt -- Set an option for a cURL transfer(提供设置)
bool curl_setopt ( resource ch, int option, mixed value )
Sets an option on the given cURL session handle. (具体请看 PHP 手册) There:
CURLOPT_URL :The URL to fetch. You can also set this when initializing a session with curl_init().
CURLOPT_CONNECTTIMEOUT :The number of seconds to wait whilst trying to connect. Use 0 to wait indefinitely.(无限期等待 设置为 0)
CURLOPT_RETURNTRANSFER :TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
CURLOPT_FAILONERROR :TRUE to fail silently if the HTTP code returned is greater than or equal to 400. The default behavior is to return the page normally, ignoring the code.
CURLOPT_USERAGENT :The contents of the "User-Agent: " header to be used in a HTTP request.
7,curl_exec : Perform a cURL session, This function should be called after you initialize a cURL session and all the options for the session are set.
如果成功则返回 TRUE,失败则返回 FALSE。 However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure
8,curl_close -- Close a cURL session
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|BC Morning Website ( Best Deal Inc. 001 )

GMT-8, 2026-4-12 01:54 , Processed in 0.019505 second(s), 20 queries .

Supported by Weloment Group X3.5

© 2008-2026 Best Deal Online

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