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

 更新时间:2010年03月24日 19:38:03   作者:  
PHP 获取远程文件内容的代码,后面有一些注释可以参考下,其实大家可以参考脚本之家发布的一些采集程序代码。
如下函数:
复制代码 代码如下:

<?
/**
获取远程文件内容
@param $url 文件http地址
*/
function fopen_url($url)
{
if (function_exists('file_get_contents')) {
$file_content = @file_get_contents($url);
} elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){
$i = 0;
while (!feof($file) && $i++ < 1000) {
$file_content .= strtolower(fread($file, 4096));
}
fclose($file);
} elseif (function_exists('curl_init')) {
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle, CURLOPT_FAILONERROR,1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾邮件检查
$file_content = curl_exec($curl_handle);
curl_close($curl_handle);
} else {
$file_content = '';
}
return $file_content;
}
?>

相关解释:
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

下面是一些参考代码:
PHP 采集程序 常用函数
PHP 采集获取指定网址的内容

相关文章

  • php+curl 发送图片处理代码分享

    php+curl 发送图片处理代码分享

    这篇文章主要介绍了php+curl 发送图片处理代码分享的方法的相关资料,需要的朋友可以参考下
    2015-07-07
  • Function eregi is deprecated (解决方法)

    Function eregi is deprecated (解决方法)

    本篇文章是对Function eregi() is deprecated错误的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP CLI模式下的多进程应用分析

    PHP CLI模式下的多进程应用分析

    PHP在很多时候不适合做常驻的SHELL进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以如果用PHP做常驻SHELL, 你会经常被内存耗尽导致abort而unhappy
    2013-06-06
  • 控制PHP的输出:缓存并压缩动态页面

    控制PHP的输出:缓存并压缩动态页面

    PHP4中最令人满意的事是——你可以让PHP缓存所有由脚本生成的输出,在你决定把它们送出之前,浏览器方是不会收到任何内容的
    2013-06-06
  • php cli模式下获取参数的方法

    php cli模式下获取参数的方法

    本篇文章主要介绍了php cli模式下获取参数的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • PHP缓存系统APCu扩展的使用

    PHP缓存系统APCu扩展的使用

    这篇文章主要介绍了PHP缓存系统APCu扩展的使用,帮助大家更好的理解和学习使用php,感兴趣的朋友可以了解下
    2021-04-04
  • 浅析PHP中Collection 类的设计

    浅析PHP中Collection 类的设计

    本篇文章是对PHP中Collection 类进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP+RabbitMQ实现消息队列的完整代码

    PHP+RabbitMQ实现消息队列的完整代码

    这篇文章主要给大家介绍了关于利用PHP+RabbitMQ实现消息队列的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • PHP学习之数组的定义和填充

    PHP学习之数组的定义和填充

    先了解一下数组,数组就是把一组数据按顺序放在一起。PHP的数组和其它的语言数组有一点点不同:第一,保存的数据是可以是任何类型的;第二,数组的索引可以是数字,也可以是字符串。
    2011-04-04
  • php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】

    php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】

    这篇文章主要介绍了php+js实现的拖动滑块验证码验证表单操作,结合实例形式分析了php+js拖动滑块验证码验证表单操作基本功能实现与使用相关操作技巧,需要的朋友可以参考下
    2020-05-05

最新评论