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

PHP實現(xiàn)的下載遠程圖片自定義函數(shù)分享

 更新時間:2015年01月28日 13:02:49   投稿:junjie  
這篇文章主要介紹了PHP實現(xiàn)的下載遠程圖片自定義函數(shù)分享,本文直接給出實現(xiàn)代碼和,本文直接給出實現(xiàn)代碼和使用方法,需要的朋友可以參考下

復制代碼 代碼如下:

<?php
/**
 * PHP下載遠程圖片到本地
 *
 * @param $url string 遠程文件地址
 * @param $filename string 保存后的文件名(為空時則為隨機生成的文件名,否則為原文件名)
 * @param $fileType array 允許的文件類型
 * @param $dirName string 文件保存的路徑(路徑其余部分根據(jù)時間系統(tǒng)自動生成)
 * @param $type int 遠程獲取文件的方式
 * @return json 返回文件名、文件的保存路徑
 * @author blog.snsgou.com
 */
function getImage($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif'), $type = 1)
{
 if ($url == '')
 {
  return false;
 }

 // 獲取文件原文件名
 $defaultFileName = basename($url);

 // 獲取文件類型
 $suffix = substr(strrchr($url, '.'), 1);
 if (!in_array($suffix, $fileType))
 {
  return false;
 }

 // 設置保存后的文件名
 $fileName = $fileName == '' ? time() . rand(0, 9) . '.' . $suffix : $defaultFileName;

 // 獲取遠程文件資源
 if ($type)
 {
  $ch = curl_init();
  $timeout = 15; // 超時時間
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $file = curl_exec($ch);
  curl_close($ch);
 }
 else
 {
  ob_start();
  readfile($url);
  $file = ob_get_contents();
  ob_end_clean();
 }

 // 設置文件保存路徑
 $dirName = $dirName . '/' . date('Y', time()) . '/' . date('m', time()) . '/' . date('d', time()) . '/';
 if (!file_exists($dirName))
 {
  mkdir($dirName, 0777, true);
 }

 // 保存文件
 $res = fopen($dirName . $fileName, 'a');
 fwrite($res, $file);
 fclose($res);

 return "{'fileName':$fileName, 'saveDir':$dirName}";
}


// 舉例
// 返回:{'fileName':13668030896.jpg, 'saveDir':/www/test/img/2013/04/24/}
echo getImage('http://img.wan.renren.com/images/2013/0430/1367294093164.jpg', '', 'd:/PHP/data', array('jpg', 'gif'), 1);

相關文章

  • 實現(xiàn)PHP多線程異步請求的3種方法

    實現(xiàn)PHP多線程異步請求的3種方法

    實現(xiàn)PHP多線程異步請求的方法有很多,在本文整理了3種不多的常用方法,大家可以參考下
    2014-01-01
  • PHP結(jié)構型模式之代理模式

    PHP結(jié)構型模式之代理模式

    代理模式是一種結(jié)構型模式,它通過一個代理對象來控制對原對象的訪問,從而實現(xiàn)對原對象的保護和增強。這種類型的設計模式屬于結(jié)構型模式,它提供了一個中間層來控制對原對象的訪問
    2023-04-04
  • PHP常見的6個錯誤提示及解決方法

    PHP常見的6個錯誤提示及解決方法

    自學黨們在自學php的時候,經(jīng)常會發(fā)生一些小錯誤,這篇文章主要介紹了PHP常見的6個錯誤提示及解決方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • php向js函數(shù)傳參的幾種方法

    php向js函數(shù)傳參的幾種方法

    php向js函數(shù)傳參可以使用$_POST也可使用$_SESSION[' '],也可用echo語句進行輸出
    2014-08-08
  • 示例詳解Laravel重置密碼代碼重構

    示例詳解Laravel重置密碼代碼重構

    假如需要使用laravel搭建一個后臺內(nèi)容管理系統(tǒng),但laravel默認的登陸注冊不能滿足目前的需求,重置密碼的話因為是用在后臺,并且不需要發(fā)送郵件進行重置,所以默認的重置密碼肯定是不行的。下面我們一起來看看如何進行Laravel重置密碼重構。
    2016-08-08
  • Session服務器配置指南與使用經(jīng)驗的深入解析

    Session服務器配置指南與使用經(jīng)驗的深入解析

    本篇文章是對Session服務器配置指南與使用經(jīng)驗進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php去除deprecated的實例方法

    php去除deprecated的實例方法

    在本篇文章里小編給大家整理的是一篇關于php去除deprecated的實例方法,有興趣的朋友們可以跟著學習參考下。
    2021-10-10
  • php JWT在web端中的使用方法教程

    php JWT在web端中的使用方法教程

    這篇文章主要給大家介紹了關于php JWT在web端中的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • php實現(xiàn)的xml操作類

    php實現(xiàn)的xml操作類

    這篇文章主要介紹了php實現(xiàn)的xml操作類,涉及PHP針對xml文件的創(chuàng)建、讀取、節(jié)點操作等常用技巧,需要的朋友可以參考下
    2016-01-01
  • PHP實現(xiàn)函數(shù)內(nèi)修改外部變量值的方法示例

    PHP實現(xiàn)函數(shù)內(nèi)修改外部變量值的方法示例

    這篇文章主要介紹了PHP實現(xiàn)函數(shù)內(nèi)修改外部變量值的方法,涉及php全局變量、傳值調(diào)用、引用等相關操作技巧,需要的朋友可以參考下
    2018-12-12

最新評論

永川市| 夏津县| 含山县| 光山县| 莱芜市| 怀远县| 奉新县| 大余县| 临夏市| 湛江市| 舒兰市| 祁门县| 罗甸县| 宁波市| 炎陵县| 呼图壁县| 德惠市| 堆龙德庆县| 阜新| 万荣县| 江西省| 金沙县| 台南县| 承德县| 平和县| 济阳县| 渝中区| 孟村| 萝北县| 临泉县| 东港市| 托克托县| 松潘县| 崇明县| 建德市| 乐都县| 蓝田县| 南丹县| 瓦房店市| 积石山| 海南省|