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 采集获取指定网址的内容



相关阅读:
简单form标准化实例——语义结构
ASP.NET读取XML文件4种方法分析
超强推荐CSS打造经典鼠标触发显示选项
关于Linux操作系统中VI编辑器字符串查找
实例解析:Jsp+JavaBean循序渐进教程(一)
用vbscript防止本地用户更改其密码
网页在线人数统计的做法
linux进入图形界面的方法
Oracle多条件组合查询函数--Instr()与decode()
PHP实例程序:实现给上传图片加水印图案的做法
优化浏览器渲染:将样式表放在页面顶部
php表单转换textarea换行符的方法
Linux系统通过手机GPRS功能无线上网
asp下通过HTTP_USER_AGENT判断用户是从手机上访问,还是电脑IE上访问
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 小学五年级作文450字:自从您当我的老师 小学二年级作文350字:我最想去海南 凡人名言(二) 谢谢350字作文 药物化学研究生求职信范文 百变昆虫读后感 坚持,就是胜利 有关元旦的现代诗 似水流华,浮光似影 副镇长酒后醉死,公款赔偿既不合法又不合理 冬日里的温暖,糖糖生活志 释放你的童真,童年,想要与你对话 十道题算出你的性格及爱情 幼儿古诗三百首 香水灯泡作文400字 献给我的爱 邓稼先读后感500字 《窗》的续写作文 突来的冰雪 写物的作文:鹰的魂,飞得更高 钻石的错过水晶的结局(1)1200字 一滴水的遭遇作文700字 语文教学设计方案 我的钢琴老师350字 区2006年文化(文物)体育工作总结及2007年工作计划 在全省纺织企业基层管理人员培训班上的讲话 我的情思走不出你的倩影 我们的教室作文700字 总经理年终总结会讲话稿 铁路党务工作汇报 我爱第一场春雨 镇党委书记2015年度述职报告 雷雨——徐昊伟作文300字 一个全村的老头 剪纸的作文600字 难忘的第一次当“老师”作文700字 我最敬佩的人250字 三个人与一只蜘蛛 水利干部《关键在于落实》一书读后感 校门口的等待作文800字 财务科2016年终个人工作总结 荷花小学作文 錦瑟第六章 2015市场营销学习心得 劳模表彰大会暨庆“五一”文艺演出主持词 爱笑的人运气不会太差 600字高中一年级作文 人生的逗号 校园的秋天作文300字 小学二年级作文350字:游岩头村 红尘有梦,转身便是风景

Copyright © 2016 phpStudy |