PHP使用phpqrcode.php生成二維碼圖片並將生成的二維碼圖片保存到本地伺服器

来源:https://www.cnblogs.com/zhaoqingzhang/archive/2022/09/16/16698710.html
-Advertisement-
Play Games

前期準備: 1.phpqrcode類文件下載,下載地址:https://sourceforge.net/projects/phpqrcode/2.PHP環境必須開啟支持GD2擴展庫支持(一般情況下都是開啟狀態) 以下為示例代碼,引入類文件後,調整相應的參數即可調用 1 /** 2 *第1個參數$te ...


前期準備:

1.phpqrcode類文件下載,下載地址:https://sourceforge.net/projects/phpqrcode/
2.PHP環境必須開啟支持GD2擴展庫支持(一般情況下都是開啟狀態)

 

 

以下為示例代碼,引入類文件後,調整相應的參數即可調用

 1 /**
 2      *第1個參數$text:二維碼包含的內容,可以是鏈接、文字、json字元串等等;
 3     第2個參數$outfile:預設為false,不生成文件,只將二維碼圖片返回輸出;否則需要給出存放生成二維碼圖片的文件名及路徑;
 4     第3個參數$level:預設為L,這個參數可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),這個參數控制二維碼容錯率,不同的參數表示二維碼可被覆蓋的區域百分比,也就是被覆蓋的區域還能識別;
 5     第4個參數$size:控制生成圖片的大小,預設為4;
 6     第5個參數$margin:控制生成二維碼的空白區域大小;
 7      *
 8      */
 9     public function lineQrCode($urlstr){
10 
11 //        $urlstr = "https://www.baidu.com/";
12 //        include 'phpqrcode.php';    //同級目錄下的類文件
13         require_once ROOT_PATH.'extend/phpqrcode/'.'phpqrcode.php';
14 
15         //生成二維碼圖片
16         $errorCorrectionLevel = 'L';    //容錯級別
17         $matrixPointSize = 5;            //生成圖片大小
18         $img = md5($urlstr).'.png';
19         $file_path = ROOT_PATH.config('template.tpl_replace_string.__FILE_UPLOAD_PATH__').'qr/';
20         $path = $file_path;
21 
22         if(!file_exists($path)){
23             //檢查是否有該文件夾,如果沒有就創建,並給予最高許可權
24             mkdir($path,0777,true);
25         }
26         $filename = $path.$img;
27         \QRcode::png($urlstr,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
28         $QR = $filename;                //已經生成的原始二維碼圖片文件
29         $QR = imagecreatefromstring(file_get_contents($QR));
30         //保存圖片,銷毀圖形,釋放記憶體
31         if (!file_exists($filename)) {
32             imagepng($QR, $filename);
33             imagedestroy($QR);
34         } else {
35             imagedestroy($QR);
36         }
37 
38         return $img;
39     }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本概念 持續集成 (Continuous Intergration) ​ 持續集成的重點在於構建編譯及測試,開發人員每天要提交很多次代碼到分支,在分支合併到主幹前,需要通過編譯和測試識別出問題。持續集成的流程就是通過自動化的構建(主要是構建編譯、自動化測試)來驗證,從而儘早地發現集成錯誤。 持續集 ...
  • 關於static method的解釋 想要解決上面的報錯,我們首先需要瞭解什麼叫做static method(靜態方法)。 靜態方法為類所有,一般情況下我們通過類來使用(而對於不加static的實例方法我們則只能通過對象的來調用)。 以下我們通過一些代碼的例子來對此進行說明: ## 在同一類裡面調用 ...
  • 《Java 核心技術:捲 1 基礎知識》,這本書本來是 Sun 公司的官方用書,是一本 Java 的入門參考書。 對於 Java 初學者來說,是一本非常不錯的值得時常翻閱的技術手冊。 書中有較多地方進行 Java 與 C++ 的比較,因為當時 Java 面世的時候,又被叫作 "C++ Kille... ...
  • Python入門要買什麼書容易上手?Python 是一個有條理強大的面向對象的程式設計語言。需要學習Python基礎知識,下載、安裝、導入庫、字元串處理、函數使用等。Python入門不論什麼書籍,想要熟練掌握知識點就需要多練多寫項目多思考才能進步,不同的書籍適合不同人,一定要選擇適合自己的資料學習。 ...
  • 一、什麼是動態SQL之if語句 if很簡單了,就是滿足條件就執行,不滿足條件不執行。 那麼動態SQL中的if語句是怎麼樣的呢? 首先我們來看一張表blog: 如果我們執行下麵的SQL語句: select * from blog 肯定會將所有的數據都查出來。那麼我們可以在後面加上where條件進行篩選 ...
  • 一、什麼是動態SQL 官方文檔給出了這樣的說明: 動態 SQL 是 MyBatis 的強大特性之一。如果你使用過 JDBC 或其它類似的框架,你應該能理解根據不同條件拼接 SQL 語句有多痛苦,例如拼接時要確保不能忘記添加必要的空格,還要註意去掉列表最後一個列名的逗號。利用動態 SQL,可以徹底擺脫 ...
  • 關於面試題,“什麼是鏈路追蹤”? 我們應該怎麼回答呢? 大家好,我是Mic,一個工作了14年的Java程式員 這個問題,面試官想考察什麼呢? 問題解析 鏈路追蹤是分散式架構下的一種監控方式。 對於一些規模較大的分散式系統,一個用戶的請求,可能需要涉及到多個子系統的流轉。 而且隨著業務的不斷增長,服務 ...
  • 一、前言 我們在日常學習中,對一個java代碼有問題,不知道jvm內部怎麼進行解析的時候;有個偉大壯舉就是反編譯,這樣就可以看到jvm內部怎麼進行對這個java文件解析的!我們可以使用JDK自帶的javap命令來進行反編譯,反編譯出來的如果看不太明白,可以使用Jad工具來配合使用。還有就是把jar包 ...
一周排行
    -Advertisement-
    Play Games
  • 經常看到有群友調侃“為什麼搞Java的總在學習JVM調優?那是因為Java爛!我們.NET就不需要搞這些!”真的是這樣嗎?今天我就用一個案例來分析一下。 昨天,一位學生問了我一個問題:他建了一個預設的ASP.NET Core Web API的項目,也就是那個WeatherForecast的預設項目模 ...
  • 很多軟體工程師都認為MD5是一種加密演算法,然而這種觀點是不對的。作為一個 1992 年第一次被公開的演算法,到今天為止已經被髮現了一些致命的漏洞。本文討論MD5在密碼保存方面的一些問題。 ...
  • Maven可以使我們在構建項目時需要用到很多第三方類jar包,如下一些常用jar包 而maven的出現可以讓我們避免手動導入jar包出現的某些問題,它可以自動下載那須所需要的jar包 我們只需要在創建的maven項目自動生成的pom.xml中輸入如下代碼 <dependencies> <!--ser ...
  • 來源:https://developer.aliyun.com/article/694020 非同步調用幾乎是處理高併發Web應用性能問題的萬金油,那麼什麼是“非同步調用”? “非同步調用”對應的是“同步調用”,同步調用指程式按照定義順序依次執行,每一行程式都必須等待上一行程式執行完成之後才能執行;非同步調 ...
  • 1.面向對象 面向對象編程是在面向過程編程的基礎上發展來的,它比面向過程編程具有更強的靈活性和擴展性,所以可以先瞭解下什麼是面向過程編程: 面向過程編程的核心是過程,就是分析出實現需求所需要的步驟,通過函數一步一步實現這些步驟,接著依次調用即可,再簡單理解就是程式 從上到下一步步執行,從頭到尾的解決 ...
  • 10瓶毒藥其中只有一瓶有毒至少需要幾隻老鼠可以找到有毒的那瓶 身似浮雲,心如飛絮,氣若游絲。 用二分查找和二進位位運算的思想都可以把死亡的老鼠降到最低。 其中,二進位位運算就是每一隻老鼠代表一個二進位0或1,0就代表老鼠存活,1代表老鼠死亡;根據數學運算 23 = 8、24 = 16,那麼至少需要四 ...
  • 一、Kafka存在哪些方面的優勢 1. 多生產者 可以無縫地支持多個生產者,不管客戶端在使用單個主題還是多個主題。 2. 多消費者 支持多個消費者從一個單獨的消息流上讀取數據,而且消費者之間互不影響。 3. 基於磁碟的數據存儲 支持消費者非實時地讀取消息,由於消息被提交到磁碟,根據設置的規則進行保存 ...
  • 大家好,我是陶朱公Boy。 前言 上一篇文章《關於狀態機的技術選型,最後一個真心好》我跟大家聊了一下關於”狀態機“的話題。從眾多技術選型中我也推薦了一款阿裡開源的狀態機—“cola-statemachine”。 於是就有小伙伴私信我,自己項目也考慮引入這款狀態機,但網上資料實在太少,能不能系統的介紹 ...
  • 使用腳本自動跑實驗(Ubuntu),將實驗結果記錄在文件中,併在實驗結束之後將結果通過郵件發送到郵箱,最後在windows端自動解析成excel表格。 ...
  • 話說在前面,我不是小黑子~ 我是超級大黑子😏 表弟大周末的跑來我家,沒事幹天天騷擾我,搞得我都不能跟小姐姐好好聊天了,於是為了打發表弟,我決定用Python做一個小游戲來消耗一下他的精力,我思來想去,決定把他變成小黑子,於是做了一個坤坤打籃球的游戲,沒想到他還挺愛玩的~ 終於解放了,於是我把游戲寫 ...