好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > php curl優化下載微信頭像的方法總結

php curl優化下載微信頭像的方法總結

熱門標簽:神龍斗士電話機器人 代理打電話機器人 電信外呼系統多少錢一個月 企業400電話辦理多少費用 宿州正規外呼系統軟件 桂陽公司如何做地圖標注 太原400電話申請流程 合肥企業外呼系統線路 萍鄉商鋪地圖標注

curl是什么

百度百科給的解釋是:數據傳輸神器。那它神器在什么地方那,通過查找資料得出curl可以使用url的語法模擬瀏覽器來傳輸數據,因為是模擬瀏覽器所以它支持多種的網絡協議。目前支持http、https、ftp、gopher、telnet、dict、file和ldap協議。libcurl同時也支持HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴展完成)、HTTP 基于表單的上傳、代理、cookies和用戶名+密碼的認證。

php中使用最多的是通過curl來模擬get和post請求。

引言

做過微信網頁開發的同學肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼、用戶頭像、用戶名稱等等。本來應該是一個很普通的需求,使用php的gd庫就很容易合成,但是最近在生成這樣海報的時候,發現時間長達19s,最后發現問題卡在遠程拉去微信頭像上,所以解決辦法有兩個。

方法一

提前把用戶微信頭像下載下來保存在自己的服務器上,不過我使用七牛云,然后自己服務器又保存一堆用戶頭像,覺得太糟糕了,所以拋棄。

方法二

使用隊列,因為使用laravel,所以很容易就可以把這種費時的任務放到后臺,自己去跑吧。剛開始采用這種方法,后來發現,如果用戶操作很快,一下就跑到生成海報的那一步,可能隊列還沒有跑完,或者隊列失敗了。所以某種程度上會給用戶一種懵逼的感覺,不知道怎么就沒有生成。

方法三

那就優化一下下載圖片的速度好了。

在stackoverflow上找到一個帖子,《php - Get compressed contents using cURL》,里面說到給curl加一下參數,從而達到壓縮傳輸的作用,試了一下,果然起作用,又后來的19s多,變成了1.3s左右。

簡單寫一下代碼(偽代碼):

基于laravel,使用了laravel-wechat, 圖片處理使用intervention/image

獲取遠程圖片內容:

//curl 沒有做錯誤處理
 static public function getImage(string $url )
 {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_ENCODING, ""); //加速 這個地方留空就可以了
  curl_setopt($ch, CURLOPT_HEADER, 0);
  $output = curl_exec($ch);
  curl_close($ch);
  return $output;
 }

合成圖片

 static public function poster(User $user, Activity $activity )
 {


  $img = Image::make(public_path() . $activity->poster_base_img_url);
  //$img = Image::make(public_path() .'/wechat.jpg');

  $img->text(
   $user->nickname, 180, 1060, function( $font ) {
   $font->file(public_path() . '/simhei.ttf'); //字體設置
   $font->size(28);
   $font->color('#fff');
   $font->align("center");
  }
  );

  $avatar = Image::make(static::getImage($user->avatar))->resize(182, 182);

  $img->insert($avatar, 'bottom-left', 95, 200);

  $fileName = str_random(16) . '.jpg';
  
  //可以保存到本地,或者上傳到七牛
 
  $img->save($filePath, 70);
 }

當然了,我搜了一下“為什么下載微信頭像會這么慢”,有很多大神分析和dns解析有關系,可以先解析成ip,然后在設置curl參數,當然也可以。解決問題方式其實還是挺多的。

使用intervention/image的坑

這個坑可能有的人不會遇到,因為和這個package無關,而是和自己的php環境有關
如果你自己升級過php版本,然后沒有使用imagick,默認使用gd庫,那么很有可能中遇到Call to undefined function imagecreatefromjpeg()和不支持FreeType 2等一些問題。后來才知道編譯安裝過程中少了:

--with-freetype-dir=DIR --with-jpeg-dir=DIR

所以重新編譯php就可以了。當然如果你不使用gd庫的話,那就不會出問題了,intervention/image默認配置使用的就是gd庫,可以自己修改。

參考文章

http://php.net/manual/zh/imag...

https://stackoverflow.com/que...

https://stackoverflow.com/que...

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 常見的5個PHP編碼小陋習以及優化實例講解
  • PHP優化之批量操作MySQL實例分析
  • PHP+MySQL實現對一段時間內每天數據統計優化操作實例
  • php中10個不同等級壓縮優化圖片操作示例
  • Nginx使用的php-fpm的兩種進程管理方式及優化
  • PHP安全配置優化詳解

標簽:廊坊 綏化 衡陽 鄂州 崇左 白銀 辛集 太原

巨人網絡通訊聲明:本文標題《php curl優化下載微信頭像的方法總結》,本文關鍵詞  php,curl,優化,下載,微信,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php curl優化下載微信頭像的方法總結》相關的同類信息!
  • 本頁收集關于php curl優化下載微信頭像的方法總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日本无码一区二区三三| 青娱乐免费在线观看| 日韩精品免费在线观看| 99这里有精品免费视频动漫| 躺在我跨下的英语老师| 寡妇下面夹得我好爽| 欧美变态柔术ⅹxxx另类| 新红楼梦三级国语| 十八禁观看成人午夜污污mv| 亚洲视频在线一区二区三区| 少妇一级婬片免放99久久蜜Av | 5060午夜网| 国精产品秘?天美一区| 色一情一乱一级一区二区看片| 国产自精品在线| 欧美又粗又长| 真人抽搐一进一出gif_三级全黄| 善良的公与媳HD中文| 桃谷绘里香黑人初解禁| 寡妇炕上干柴烈火视频| 扒开女人内裤猛烈进入| 国产下药灌醉玩弄网站AV| 免费人成视网站在线不卡| 男男各种play| chinese free xxxx hd老少| 一级毛片免费观看视频| 亚洲中文无码亚洲成a人片app| 欧洲黄色毛片| 嫩草免费| 边吃胸边膜下刺激免费视频| 成在线人免费无码高潮喷水麻豆| 男人桶女人暴爽30分钟| 久久亚洲国产成人亚| 两双乳被男人揉搓玩弄的涨起来了| 嗯灬啊灬好深灬好硬啊灬无码网站 | 老师好紧?开裆蕾丝| jiizz欧美成熟HD丰满人妻| 艳母资源| 污视频下| 好硬好湿好爽再深一点h| 日本一级特黄大片做受9在线观看 无码免费人妻A片AAA毛片西瓜 |