最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現(xiàn)的一個保存遠程文件到本地的函數(shù)分享

 更新時間:2014年11月05日 11:32:56   投稿:junjie  
這篇文章主要介紹了PHP實現(xiàn)的一個保存遠程文件到本地的函數(shù)分享,本文直接給出實現(xiàn)代碼和使用方法,需要的朋友可以參考下

最近遇到了PHP遠程圖片本地話的問題,查了查手冊發(fā)現(xiàn)file_get_contents()和file_put_contents()可以解決這個問題。思路很簡單,將遠程文件讀入字符串中,然后按照規(guī)則寫入指定目錄,經(jīng)測試此法可采集圖片、文本、音頻文件等,只要你可以想辦法得到它們的地址。

先上代碼:

復制代碼 代碼如下:

/**
 * 保存文件到本地
 * @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;
}
 
/**
 * 獲取文件擴展名
 * @param 網(wǎng)頁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() 把文件讀入一個字符串。path是必須的參數(shù),規(guī)定要讀取的文件。

file_put_contents(file,data) 函數(shù)是把一個字符串寫入文件中。與依次調用 fopen(),fwrite() 以及 fclose() 功能一樣。file是必需參數(shù),規(guī)定要寫入數(shù)據(jù)的文件。如果文件不存在,則創(chuàng)建一個新文件。data是要寫入的數(shù)據(jù),可以是字符串、數(shù)組或數(shù)據(jù)流。

parse_url()則可以抓取分析url的信息,我們這里用它來獲取文件的名稱

官方給的示例:

復制代碼 代碼如下:

$ php -r 'print_r(parse_url("http://invalid_host..name/"));'
Array
(
    [scheme] => http
    [host] => invalid_host..name
    [path] => /
)

相關文章

  • Ruby基礎語法初探

    Ruby基礎語法初探

    這篇文章主要介紹了Ruby基礎語法,第一次看到Ruby代碼的朋友不知會不會被Ruby的語法吸引:) 需要的朋友可以參考下
    2015-07-07
  • Ruby中字符串左側補零方法實例

    Ruby中字符串左側補零方法實例

    這篇文章主要介紹了Ruby中字符串左側補零方法實例,常用的方法是使用字符的rjust方法來實現(xiàn),需要的朋友可以參考下
    2014-06-06
  • 比較詳細的ruby symbol 學習資料

    比較詳細的ruby symbol 學習資料

    最近在學習ruby on rails,的確是一個優(yōu)秀的數(shù)據(jù)庫開發(fā)框架。但在過程中,發(fā)現(xiàn)在視圖文件夾中的rhtml文件里有大量的類似于以下的語句
    2008-08-08
  • ruby實現(xiàn)的一個異步文件下載HttpServer實例

    ruby實現(xiàn)的一個異步文件下載HttpServer實例

    這篇文章主要介紹了ruby實現(xiàn)的一個異步文件下載HttpServer,使用eventmachine和em-http-server實現(xiàn),需要的朋友可以參考下
    2014-07-07
  • 在Ruby中處理日期和時間的教程

    在Ruby中處理日期和時間的教程

    這篇文章主要介紹了在Ruby中處理日期和時間的教程,包括時間的格式化等基本用法,需要的朋友可以參考下
    2015-04-04
  • ruby的程序結構介紹

    ruby的程序結構介紹

    這篇文章主要介紹了ruby的程序結構介紹,本文講解了源文件、模塊、控制結構、方法定義、類及對象等內容,需要的朋友可以參考下
    2015-05-05
  • 淺析Ruby中繼承和消息的相關知識

    淺析Ruby中繼承和消息的相關知識

    這篇文章主要介紹了Ruby中繼承和消息,是Ruby入門學習中的基礎知識,需要的朋友可以參考下
    2015-07-07
  • mac os gem安裝json出現(xiàn)error failed的解決辦法

    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
  • Rails腳手架使用實例

    Rails腳手架使用實例

    這篇文章主要介紹了Rails腳手架使用實例,通過8個步驟來實現(xiàn)一個完整案例,需要的朋友可以參考下
    2014-06-06
  • 深入理解Ruby on Rails中的緩存機制

    深入理解Ruby on Rails中的緩存機制

    這篇文章主要介紹了深入理解Ruby on Rails中的緩存機制,本文來自于IBM官方網(wǎng)站技術文檔,需要的朋友可以參考下
    2015-04-04

最新評論

婺源县| 乳山市| 盐山县| 内丘县| 织金县| 济南市| 喀喇沁旗| 长白| 崇义县| 乌海市| 柳江县| 河北省| 会昌县| 饶平县| 华坪县| 扶沟县| 茶陵县| 会泽县| 六枝特区| 阿合奇县| 逊克县| 鄂州市| 平和县| 乌拉特前旗| 天长市| 遂川县| 南阳市| 当涂县| 财经| 和田县| 万盛区| 仁布县| 渝中区| 务川| 牟定县| 丹江口市| 万载县| 张掖市| 桂平市| 乐亭县| 舞阳县|