久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

php如何優(yōu)化圖片獲取寬高

本篇文章給大家介紹一下php優(yōu)化圖片獲取寬高的方法。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。

php如何優(yōu)化圖片獲取寬高

php 關(guān)于圖片獲取寬高的優(yōu)化

需求

應(yīng)前端需求,在進(jìn)入文章詳情時(shí)需要將所有圖片進(jìn)行占位替換,且占位符需要對(duì)應(yīng)圖片信息(主要需要知道寬高)

目的:做點(diǎn)擊圖片浮窗效果

實(shí)現(xiàn)方案

優(yōu)化前

正則匹配圖片,然后循環(huán)獲取每張圖片的寬高

問題:如果文章圖片較少,以上操作問題不大。但圖片一旦過多,這個(gè)效率將會(huì)非常低下

代碼如下:

        preg_match_all('/<img.*? src="(.*?)".*?>/is', $str, $matchs);                 if(!empty($matchs[0])){             $pics = [];             $i = 0;             foreach ($matchs[0] as $key => $m) {                 $fileInfo = file_get_contents($matchs[1][$key] . '?x-oss-process=image/info');                 $fileInfo = json_decode($fileInfo, true);                 $data['Width'] = $fileInfo['ImageWidth']['value'];                 $data['Height'] = $fileInfo['ImageHeight']['value'];                                      $imgs[$i]['ref'] = '<!--IMG#' . $key . '-->';                 $imgs[$i]['pixel'] = $data['Width'] . '*' . $data['Height'];                 preg_match('/alt="(.*?)"/i', $matchs[0][$key], $mt);                 $imgs[$i]['alt'] = isset($mt[1]) ? $mt[1] : '';   //圖片alt                 $imgs[$i]['src'] = $matchs[1][$key];                //圖片地址                 $str = str_replace($m, '<!--IMG#' . $key . '-->', $str);                 $i++;              }         }

優(yōu)化思路

想著是否會(huì)有極速獲取圖片法子?在網(wǎng)上找了一些資料,基本上都是通過讀取圖片部分文件信息,不需要下載/讀取整個(gè)圖片。找了一個(gè)類庫:[https://github.com/tommoor/fastimage](https://github.com/tommoor/fastimage),試了一下。 相比以前的思路(完整的下載圖片) 確實(shí)有性能上的提升。有興趣的朋友可以試試,如果針對(duì)單張圖片的信息獲取,這個(gè)還是很推薦的。但批量的實(shí)現(xiàn)似乎還達(dá)不到目的

分析以上操作,其實(shí)慢的過程應(yīng)該還是停留在循環(huán)獲取圖片資源上。那么換個(gè)思路,我批量獲取圖片是否就ok了?上代碼

preg_match_all('/<img.*? src="(.*?)".*?>/is', $str, $matchs);  if(!empty($matchs[0])){     //$time = microtime(true);     //echo  '  ---- start ' . PHP_EOL;      foreach ($matchs[0] as $key => $m) {         $urls[] = $matchs[1][$key] . '?x-oss-process=image/info';     }     $imageInfos = batchCurl($urls);      $i = 0;     foreach ($matchs[0] as $key => $m) {         $image = json_decode($imageInfos[$key], true);         $_img['Width'] = $width= $image['ImageWidth']['value'];         $_img['Height'] = $height = $image['ImageHeight']['value'];          $imgs[$i]['ref'] = '<!--IMG#' . $key . '-->';         $imgs[$i]['pixel'] = $_img['Width'] . '*' . $_img['Height'];         preg_match('/alt="(.*?)"/i', $matchs[0][$key], $mt);         $imgs[$i]['alt'] = isset($mt[1]) ? $mt[1] : '';   //圖片alt         $imgs[$i]['src'] = $matchs[1][$key];                //圖片地址         $str = str_replace($m, '<!--IMG#' . $key . '-->', $str);          $i++;     }     //echo  " ---- end  px in " . (microtime(true)-$time) . " seconds n";     //exit; }          function batchCurl($urls) {     $res = $conn = [];      // 創(chuàng)建批處理cURL句柄     $mh = curl_multi_init();      foreach ($urls as $i => $url) {         // 創(chuàng)建一對(duì)cURL資源         $conn[$i] = curl_init();         // 設(shè)置URL和相應(yīng)的選項(xiàng)         curl_setopt($conn[$i], CURLOPT_URL, $url);         curl_setopt($conn[$i], CURLOPT_HEADER, 0);         curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);         curl_setopt($conn[$i], CURLOPT_TIMEOUT, 10);         // 302跳轉(zhuǎn)         curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);         // 增加句柄         curl_multi_add_handle($mh, $conn[$i]);     }     $active = null;     //防卡死寫法:執(zhí)行批處理句柄     do {         $mrc = curl_multi_exec($mh, $active);     } while ($mrc == CURLM_CALL_MULTI_PERFORM);      while ($active && $mrc == CURLM_OK) {         if (curl_multi_select($mh) != -1) {             do {                 $mrc = curl_multi_exec($mh, $active);             } while ($mrc == CURLM_CALL_MULTI_PERFORM);         }     }     foreach ($urls as $i => $url) {         //獲取當(dāng)前解析的cURL的相關(guān)傳輸信息         $info = curl_multi_info_read($mh);         //獲取請(qǐng)求頭信息         $heards = curl_getinfo($conn[$i]);         //獲取輸出的文本流         $res[$i] = curl_multi_getcontent($conn[$i]);         // 移除curl批處理句柄資源中的某個(gè)句柄資源         curl_multi_remove_handle($mh, $conn[$i]);         //關(guān)閉cURL會(huì)話         curl_close($conn[$i]);     }     //關(guān)閉全部句柄     curl_multi_close($mh);      return $res; }

3. 測(cè)試性能,20張圖片的效率幾乎能達(dá)到秒級(jí)

![image](/img/bVcKCF2)

推薦學(xué)習(xí):php視頻教程

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩久久电影| 精品国产一级| 免费观看亚洲天堂| 亚洲欧美网站在线观看| 亚洲高清av| 日韩在线精品| 日韩在线观看| 日韩欧美字幕| 国产精品成人a在线观看| 欧美一区自拍| 日韩欧美激情电影| 鲁大师成人一区二区三区| 久久理论电影| 欧美sss在线视频| 成人污污视频| 欧美1区2区3| 日韩av中文字幕一区二区 | 好看不卡的中文字幕| 国产综合色区在线观看| 波多野结衣久久精品| 91一区二区三区四区| 日韩不卡视频在线观看| 国产精品yjizz视频网| 成人在线视频中文字幕| 欧美激情一区| 日韩国产一区| 欧美日韩国产v| 神马久久午夜| 桃色一区二区| 亚洲免费播放| 日韩亚洲在线| 亚洲欧洲一区二区天堂久久| 男人的天堂亚洲一区| 国产无遮挡裸体免费久久| 国产96在线亚洲| 国产 日韩 欧美 综合 一区| 久久97视频| 亚洲高清影视| 国产亚洲福利| 综合一区av| 免费不卡在线观看| 国产精品成人自拍| 激情视频网站在线播放色| 99精品在线免费在线观看| 一区二区三区网站| 婷婷激情综合| 丝袜亚洲另类欧美| 人人爱人人干婷婷丁香亚洲| 欧美激情五月| 午夜国产一区二区| 日本久久一区| 欧美aaaaaa午夜精品| 欧洲一区二区三区精品| 免费国产亚洲视频| 色爱综合网欧美| 午夜免费一区| 日韩欧美中文字幕电影| 国产精品1区| 欧美在线资源| 日韩久久99| 免费视频一区二区三区在线观看| 精品国产精品久久一区免费式 | 极品日韩av| 免费高清在线一区| 国产精品极品在线观看| 午夜日本精品| 日本强好片久久久久久aaa| 精品亚洲成人| 黑丝一区二区三区| aa亚洲婷婷| 精品一区二区三区在线观看视频| 97se综合| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲精品自拍| 国产伊人久久| 最新亚洲国产| 激情自拍一区| 狠狠久久伊人中文字幕| 四虎精品一区二区免费| 亚洲高清久久| 岛国av在线播放| 国产欧美一区二区三区国产幕精品 | 在线国产一区| 国产中文字幕一区二区三区| 免费久久精品视频| 精品一区免费| 在线手机中文字幕| 国产精品欧美在线观看| 亚洲一区av| 九一国产精品| 91亚洲成人| 麻豆极品一区二区三区| 四虎精品一区二区免费| 欧美午夜不卡影院在线观看完整版免费| 美女高潮久久久| 69精品国产久热在线观看| 夜久久久久久| 久久免费黄色| 国产中文在线播放| 精品视频在线一区二区在线| 日韩国产在线不卡视频| 蜜臀av亚洲一区中文字幕| 99在线观看免费视频精品观看| 成人日韩精品| 精品国产欧美日韩| 欧美精品不卡| 国产精品一线天粉嫩av| 婷婷综合国产| 一区二区精品| 蜜桃视频免费观看一区| 亚洲一区二区三区高清不卡| 日韩成人免费| 国产专区精品| 红杏一区二区三区| 国产一区二区三区四区五区传媒 | 精品视频一二| 美女精品久久| 精品亚洲自拍| 国产aⅴ精品一区二区四区| 麻豆传媒一区二区三区| 国产精品分类| 国产精品调教视频| 久久国产精品免费一区二区三区| 日韩高清在线不卡| 日韩专区欧美专区| 中文字幕乱码亚洲无线精品一区| 三级亚洲高清视频| 日本亚洲不卡| 欧美亚洲二区| 久久av国产紧身裤| 国产一区二区三区四区二区| 精品国产一区二区三区av片| 色婷婷色综合| 国产在线日韩| 老牛国产精品一区的观看方式| 水蜜桃久久夜色精品一区的特点 | 中文字幕在线看片| 日韩成人高清| 精品国产欧美日韩一区二区三区| 久久国产欧美日韩精品| 日韩av黄色在线| 久久影院一区二区三区| 国产日产一区| 麻豆91在线播放| 久久国产精品色av免费看| 久久国产视频网| 国产精品对白| 黄色网一区二区| 国产 日韩 欧美一区| 亚洲国产专区校园欧美| 久久视频一区| 99视频精品| 日韩精品亚洲aⅴ在线影院| 国产乱码精品一区二区三区四区 | 日韩不卡一二三区| 精品一区二区三区中文字幕视频| 日韩精品2区| 日韩视频二区| 日韩综合一区二区三区| 国产精品va视频| 欧洲在线一区| 亚洲一区av| 久久久久久久久成人| 蜜桃精品视频| 中文在线免费视频| 欧美91在线|欧美| 亚洲性色av| 国产婷婷精品| 国产欧美在线观看免费| 亚洲一区资源| 国产精品日韩久久久| 欧美天堂一区| 美女精品久久| 欧美粗暴jizz性欧美20| 在线免费观看亚洲| 国产精品久久国产愉拍| 日韩成人综合| 视频一区在线播放| 欧美精品福利| 香蕉视频亚洲一级| 日本成人精品| 精品亚洲美女网站| 欧美在线黄色| 婷婷国产精品| 国产亚洲一卡2卡3卡4卡新区| 亚洲1234区| 91综合久久爱com| 久久久噜噜噜| 欧美专区一区| 欧美日韩国产一区二区三区不卡| 欧美日韩伊人| 国产精品88久久久久久| 欧美日韩伊人| 91精品国产调教在线观看| 日韩av资源网| 欧美福利一区| 美女久久久久久| 欧美专区18| 日韩精品dvd| 国产探花在线精品|