激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php將遠程圖片保存到本地服務器的實現代碼

php將遠程圖片保存到本地服務器的實現代碼

2020-11-13 13:26PHP教程網 PHP教程

有些時候我們想保存一些漂亮圖片,但又不想手動去保存下來,尤其是大批量的存儲,這個時候我們需要寫一段程序來幫助我們完成這個工作,本文介紹了php如何將遠程圖片本地化,需要的朋友可以參考下

php如何將遠程圖片本地化,本文分享了實現代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
//站點根目錄
$cfg_basedir = dirname(__FILE__);
//停建目錄屬性
$cfg_dir_purview ='0755';
 /*Get請求遠程內容函數*/
 $cookie_file = dirname(__FILE__).'/cookie.txt'; //COOKIE存放地址
  function pget($url,$ref=false,$head=false){
  $curl = curl_init(); // 啟動一個CURL會話
  curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址      
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
  if($ref){ curl_setopt($curl, CURLOPT_REFERER, $ref);//帶來的Referer
  }else{
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer
  }
  curl_setopt($curl, CURLOPT_HTTPGET, 1); // 發送一個常規的Post請求
  curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名稱
  curl_setopt($curl, CURLOPT_COOKIEFILE,$GLOBALS ['cookie_file']); // 讀取上面所儲存的Cookie信息
  curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環
  curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
  $tmpInfo = curl_exec($curl); // 執行操作
  if (curl_errno($curl)) {
 echo 'Errno'.curl_error($curl);
  }
   if($head){ $data['head']=curl_getinfo($curl);}
  curl_close($curl); // 關鍵CURL會話
  $data['data']=$tmpInfo;
  return $data; // 返回數據
}
 
 
/**
 * 創建所有目錄
 *
 * @param   string $truepath 真實地址
 * @param   string $mmode  模式
 * @return  bool
 */
if ( ! function_exists('MkdirAll'))
{
  function MkdirAll($truepath)
  { global $cfg_dir_purview;
      if(!file_exists($truepath))
      {
        mkdir($truepath, $cfg_dir_purview);
        chmod($truepath, $cfg_dir_purview);
        return true;
      }
      else
      {
        return true;
      }
  }
}
  /**
 * 獲得文章body里的外部資源
 *
 * @access  public
 * @param   string $body 文檔內容
 * @return  string
 */
function GetCurContent($body)
{
  global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$arcID,$cuserLogin,$dsql;
  $cfg_uploaddir = '/c';
  $basehost = "http://".$_SERVER["HTTP_HOST"];
     
  $img_array = array();
  preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
   
  $img_array = array_unique($img_array[1]);
  $imgUrl = $cfg_uploaddir.'/'.date("ymd", time());
  $imgPath = $cfg_basedir.$imgUrl;
  if(!is_dir($imgPath.'/'))
  {
    MkdirAll($imgPath, $GLOBALS['cfg_dir_purview']);
    CloseFtp();
  }
  $milliSecond = date('His',time());
  foreach($img_array as $key=>$value)
  
    if(preg_match("#".$basehost."#i", $value))
    {
      continue;
    }
    if(preg_match("#".$basehost."#i", $value))
    {
      continue;
    }
    if(!preg_match("#^http:\/\/#i", $value))
    {
      continue;
    }
    
    $http=pget($value,'$value',true);
    $itype=($http['head']['content_type']);
    if(!preg_match("#\.(jpg|gif|png)#i", $itype))
    {
      if($itype=='image/gif')
      {
        $itype = ".gif";
      }
      else if($itype=='image/png')
      {
        $itype = ".png";
      }
      else
      {
        $itype = '.jpg';
      }
    }
    $milliSecondN = rand(1000,9999).rand(1000,9999);
    $value = trim($value);
    $rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype;
    $fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype;
 
    $tp = fopen($rndFileName, 'wb');
    fwrite($tp, $http['data']);
    fclose($tp);
     
    if(file_exists($cfg_basedir.$fileurl))
    {
      $info = '';
      $imginfos = GetImageSize($rndFileName, $info);
      $fsize = filesize($rndFileName);
      $body = str_replace($value, $fileurl, $body);
  
    }
  }
  return $body;
}
 
//調用方式
echo GetCurContent($body);

以上就是實現遠程圖片本地化的全部代碼,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色大片网站在线观看 | 国产成视频在线观看 | 黄色aaa视频 | 国产视频在线播放 | 精品一区二区三区在线视频 | 国产在线精品一区二区 | 国产精品aⅴ| 午夜精品久久久久久久99热浪潮 | 成人做爽爽爽爽免费国产软件 | 福利四区 | 国产成人在线视频 | 久久免费视频7 | 欧美精品一区二区三区四区 | 可以看逼的视频 | 被狠狠操| 羞羞网站在线看 | 国产亚洲欧美一区久久久在 | 制服丝袜成人动漫 | 黄wwww| 欧美成人性生活片 | 免费h片网站 | 成人在线视频一区 | 亚洲精品aaaaa | 亚洲成人在线视频网 | 久久久久久久久久久一区 | 国产色片| 黄色毛片一级视频 | 黄色av网| 久久经典国产视频 | 日韩黄色精品视频 | 成人资源在线 | 日本欧美一区二区三区在线播 | 五月激情久久 | av免费在线网| 国产电影精品久久 | 欧美视频一区二区三区 | 男女做性免费网站 | 91九色视频在线播放 | 亚洲免费观看视频 | 久久久人| 一级黄色毛片播放 |