PHP 獲取遠(yuǎn)程文件內(nèi)容的函數(shù)代碼
<?
/**
獲取遠(yuǎn)程文件內(nèi)容
@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;
}
?>
相關(guān)解釋?zhuān)?
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(配置文件中的內(nèi)容)
3,fopen( "rb"): 在操作二進(jìn)制文件時(shí)如果沒(méi)有指定 'b' 標(biāo)記,可能會(huì)碰到一些奇怪的問(wèn)題,包括壞掉的圖片文件以及關(guān)于 \r\n 字符的奇怪問(wèn)題。
注意: 為移植性考慮,強(qiáng)烈建議在用 fopen() 打開(kāi)文件時(shí)總是使用 'b' 標(biāo)記。
注意: 再一次,為移植性考慮,強(qiáng)烈建議你重寫(xiě)那些依賴(lài)于 't' 模式的代碼使其使用正確的行結(jié)束符并改成 'b' 模式。
4,strtolower -- Make a string lowercase
5,curl_init() :curl_init -- Initialize a cURL session(初始化一個(gè)cUrl會(huì)話(huà))
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(提供設(shè)置)
bool curl_setopt ( resource ch, int option, mixed value )
Sets an option on the given cURL session handle. (具體請(qǐng)看 PHP 手冊(cè)) 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.(無(wú)限期等待 設(shè)置為 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 采集程序 常用函數(shù)
PHP 采集獲取指定網(wǎng)址的內(nèi)容
- php下載遠(yuǎn)程文件類(lèi)(支持?jǐn)帱c(diǎn)續(xù)傳)
- PHP 遠(yuǎn)程文件管理,可以給表格排序,遍歷目錄,時(shí)間排序
- 獲取遠(yuǎn)程文件大小的php函數(shù)
- PHP 網(wǎng)絡(luò)開(kāi)發(fā)詳解之遠(yuǎn)程文件包含漏洞
- php帶密碼功能并下載遠(yuǎn)程文件保存本地指定目錄 修改加強(qiáng)版
- php下利用curl判斷遠(yuǎn)程文件是否存在的實(shí)現(xiàn)代碼
- PHP 獲取遠(yuǎn)程文件大小的3種解決方法
- PHP實(shí)現(xiàn)的一個(gè)保存遠(yuǎn)程文件到本地的函數(shù)分享
- PHP中通過(guò)fopen()函數(shù)訪(fǎng)問(wèn)遠(yuǎn)程文件示例
- php獲取遠(yuǎn)程文件內(nèi)容的函數(shù)
- php獲取遠(yuǎn)程文件的內(nèi)容和大小
相關(guān)文章
PHP實(shí)現(xiàn)機(jī)器學(xué)習(xí)之樸素貝葉斯算法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)機(jī)器學(xué)習(xí)之樸素貝葉斯算法,結(jié)合實(shí)例形式詳細(xì)分析了樸素貝葉斯算法的概念、原理及php實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12如何對(duì)PHP程序中的常見(jiàn)漏洞進(jìn)行攻擊(上)
如何對(duì)PHP程序中的常見(jiàn)漏洞進(jìn)行攻擊(上)...2006-12-12php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence錯(cuò)誤的處理方法
在利用php解析xml時(shí)提示Invalid byte 1 of 1-byte UTF-8 sequence錯(cuò)誤了,這個(gè)問(wèn)題我百度查實(shí)說(shuō)是編碼問(wèn)題,結(jié)果我把編碼處理一下果然KO了,下面我來(lái)分享一下解決辦法2013-11-11基于php數(shù)組中的索引數(shù)組和關(guān)聯(lián)數(shù)組詳解
下面小編就為大家分享一篇基于php數(shù)組中的索引數(shù)組和關(guān)聯(lián)數(shù)組詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03PHP中session跨子域的三種實(shí)現(xiàn)方法
做項(xiàng)目的時(shí)候跨域問(wèn)題在cooike及session中我們經(jīng)常會(huì)使用到了,不過(guò)php對(duì)于子域處理是比較簡(jiǎn)單的了,小編整理了三個(gè)解決方案,下面一起來(lái)看看。2016-07-07PHP數(shù)組編碼gbk與utf8互相轉(zhuǎn)換的兩種方法
這篇文章給大家分享了兩種轉(zhuǎn)換的方法,都可以實(shí)現(xiàn)PHP數(shù)組的編碼進(jìn)行相互轉(zhuǎn)換。大家可以參考自己的實(shí)際情況進(jìn)行選擇哪一種方法,下面來(lái)一起看看吧。2016-09-09PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作基類(lèi)
這篇文章主要介紹了PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作基類(lèi),涉及PHP操作數(shù)據(jù)庫(kù)的基本配置與增刪改查等操作技巧,需要的朋友可以參考下2016-01-01