PHP實(shí)現(xiàn)的一個(gè)保存遠(yuǎn)程文件到本地的函數(shù)分享
最近遇到了PHP遠(yuǎn)程圖片本地話的問(wèn)題,查了查手冊(cè)發(fā)現(xiàn)file_get_contents()和file_put_contents()可以解決這個(gè)問(wèn)題。思路很簡(jiǎn)單,將遠(yuǎn)程文件讀入字符串中,然后按照規(guī)則寫入指定目錄,經(jīng)測(cè)試此法可采集圖片、文本、音頻文件等,只要你可以想辦法得到它們的地址。
先上代碼:
/**
* 保存文件到本地
* @param 文件路徑 $url
* @param 保存本地路徑 $savePath
* @return string
*/
function downloadFile($url,$savePath='')
{
$fileName = getUrlFileExt($url);
$fileName = rand(0,1000).$fileName;
$file = file_get_contents($url);
file_put_contents($savePath.'/'.$fileName,$file);
return $fileName;
}
/**
* 獲取文件擴(kuò)展名
* @param 網(wǎng)頁(yè)URL $url
* @return string
*/
function getUrlFileExt($url)
{
$ary = parse_url($url);
$file = basename($ary['path']);
$ext = explode('.',$file);
return $ext[1];
}
示例:
downloadFile("http://blog.jb51.net/wp-content/themes/inove/img/mei.png","/upload/2012/01/")
file_get_contents(path) 函數(shù)和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個(gè)字符串。path是必須的參數(shù),規(guī)定要讀取的文件。
file_put_contents(file,data) 函數(shù)是把一個(gè)字符串寫入文件中。與依次調(diào)用 fopen(),fwrite() 以及 fclose() 功能一樣。file是必需參數(shù),規(guī)定要寫入數(shù)據(jù)的文件。如果文件不存在,則創(chuàng)建一個(gè)新文件。data是要寫入的數(shù)據(jù),可以是字符串、數(shù)組或數(shù)據(jù)流。
parse_url()則可以抓取分析url的信息,我們這里用它來(lái)獲取文件的名稱
官方給的示例:
$ php -r 'print_r(parse_url("http://invalid_host..name/"));'
Array
(
[scheme] => http
[host] => invalid_host..name
[path] => /
)
- php下載遠(yuǎn)程文件類(支持?jǐn)帱c(diǎn)續(xù)傳)
- PHP 遠(yuǎn)程文件管理,可以給表格排序,遍歷目錄,時(shí)間排序
- 獲取遠(yuǎn)程文件大小的php函數(shù)
- PHP 獲取遠(yuǎn)程文件內(nèi)容的函數(shù)代碼
- PHP 網(wǎng)絡(luò)開發(fā)詳解之遠(yuǎn)程文件包含漏洞
- php帶密碼功能并下載遠(yuǎn)程文件保存本地指定目錄 修改加強(qiáng)版
- php下利用curl判斷遠(yuǎn)程文件是否存在的實(shí)現(xiàn)代碼
- PHP 獲取遠(yuǎn)程文件大小的3種解決方法
- PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例
- php獲取遠(yuǎn)程文件內(nèi)容的函數(shù)
- php獲取遠(yuǎn)程文件的內(nèi)容和大小
相關(guān)文章
比較詳細(xì)的ruby symbol 學(xué)習(xí)資料
最近在學(xué)習(xí)ruby on rails,的確是一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)開發(fā)框架。但在過(guò)程中,發(fā)現(xiàn)在視圖文件夾中的rhtml文件里有大量的類似于以下的語(yǔ)句2008-08-08
ruby實(shí)現(xiàn)的一個(gè)異步文件下載HttpServer實(shí)例
這篇文章主要介紹了ruby實(shí)現(xiàn)的一個(gè)異步文件下載HttpServer,使用eventmachine和em-http-server實(shí)現(xiàn),需要的朋友可以參考下2014-07-07
mac os gem安裝json出現(xiàn)error failed的解決辦法
這篇文章主要介紹了mac os gem安裝json出現(xiàn)error failed的解決辦法,系統(tǒng)是mac os Mavericks,失敗提示Failed to build gem native extension,需要的朋友可以參考下2014-06-06

