PHP 获取远程文件内容的函数代码
如下函数:
<div class="codetitle"><a style="CURSOR: pointer" data="68998" class="copybut" id="copybut68998" onclick="doCopy('code68998')"> 代码如下:
<div class="codebody" id="code68998">
<?
/*
获取远程文件内容
@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_s
etopt($curl_handle,CURLOPT_URL,$url);
curl_s
etopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_s
etopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_s
etopt($curl_handle,CURLOPT_FAILONERROR,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 con
figuration 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 字符的奇怪问题。
注意: 为移植性考虑,强烈建议在用 f
open() 打开
文件时总是使用 '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_s
etopt(),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_s
etopt() function.
Returns a cURL handle on success,FALSE on errors.
6,curl_s
etopt -- Set an option for a cURL transfer(提供设置)
bool curl_s
etopt ( 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,ig
noring 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 采集获取指定网址的内容