最新補(bǔ)充:博客已分享性能最好的js 去年張戈博客曾分享過一篇與二維碼API有關(guān)的文章:《分享幾個(gè)可用的二維碼API,,以及給博客添加文章二維碼圖片的方法》,,由于第三方二維碼API總感覺穩(wěn)定性和自定義性稍差,,所以就到網(wǎng)上爬了一下相關(guān)代碼,自己搭建了一個(gè)二維碼API,,用了幾個(gè)月感覺良好,,完全可以滿足我博客的自定義需求。至于博客二維碼這個(gè)功能是否雞肋,,那就仁者見仁智者見智了,。我個(gè)人認(rèn)為,在這個(gè)移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的時(shí)代,,搶占先機(jī),,做好移動(dòng)端的用戶體驗(yàn)至關(guān)重要!
這個(gè)功能不是原創(chuàng),,而且百度一搜一大把,,都不好意思拿來分享一二。最近看到有網(wǎng)友留言,,想要我分享這個(gè)二維碼API源碼,,鑒于博客分享初衷,就厚著臉皮貼出來了,。當(dāng)然,,不止是那個(gè)qr code類,而是搭建成品的整體代碼或心得,,畢竟張戈博客存在的目的就是盡力降低各類IT教程的使用門檻(哈,,是不是感覺很高尚...)! 一,、PHP 代碼 | <?php | | /** | | * PHP在線網(wǎng)址二維碼API源碼分享示例 By 張戈博客() | | * 文章地址:https:///5031.html | | **/ | |
| | //載入qrcode類 | | include './phpqrcode.php'; | |
| | //取得GET參數(shù) | | $url = isset($_GET['url']) ? $_GET['url'] : 'help'; | | $errorLevel = isset($_GET['e']) ? $_GET['e'] : 'L'; | | $PointSize = isset($_GET['p']) ? $_GET['p'] : '3'; | | $margin = isset($_GET['m']) ? $_GET['m'] : '0'; | | preg_match('/http:\/\/([\w\W]*?)\//si', $url, $matches); | |
| | //簡單判斷 | | //if ( $matches[1] != '' && $matches[1] != '' || $url == 'help') { //取消此行注釋并注釋下面一行,,就能加入自定義的url過濾功能 | | if ( $url == 'help'){ | | //簡單的描述一下使用方法 | | header('Content-type: text/html; charset=utf-8'); | | echo '<title>在線二維碼API接口| 張戈博客</title>'; | | echo '<h1>歡迎使用張戈博客在線二維碼API服務(wù)!</h1> | | 使用前請(qǐng)仔細(xì)查看參數(shù)說明:<br /> | | <br /> | | url: 二維碼對(duì)應(yīng)的網(wǎng)址<br /><br /> | | m  : 二維碼白色邊框尺寸,缺省值: 0px<br /><br /> | | e  : 容錯(cuò)級(jí)別(errorLevel),,可選參數(shù)如下(缺省值 L):<br /> | |  L水平 7%的字碼可被修正<br /> | |  M水平 15%的字碼可被修正<br /> | |  Q水平 25%的字碼可被修正<br /> | |  H水平 30%的字碼可被修正<br /> | | p  : 二維碼尺寸,,可選范圍1-10(具體大小和容錯(cuò)級(jí)別有關(guān))(缺省值:3)<br /><br /> | | 常規(guī)用法:<a href='seo./qr/?m=0&e=L&p=3&url=https:///' target='_blank'>http://seo./qr/?m=0&e=L&p=3&url=https:///</a><br /><br /> | | | | CDN 加速:<br /> | | 格式:http://seo./qr/$m_$e_$p_$url_cdn.png <br /> | | 示例:<a href='seo./qr/0_l_3_https:///_cdn.png' target='_blank'>http://seo./qr/0_l_3_https://_cdn.png</a><br /> | | '; | | exit(); | | } else { | | //調(diào)用二維碼生成函數(shù) | | createqr($url, $errorLevel, $PointSize, $margin); | | } | |
| | //簡單二維碼生成函數(shù) | | function createqr($value,$errorCorrectionLevel,$matrixPointSize,$margin) { | | QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize, $margin); | | } | | ?> |
將以上代碼保存為php文件(比如qr.php),上傳到網(wǎng)站指定目錄(比如根目錄 /),。 二,、QrCode類下載PHP的QrCode類,上傳到網(wǎng)站目錄,,其實(shí)百度一搜一大把,,還是貼上張戈博客自用的文件吧! 版權(quán)說明本站提供的下載內(nèi)容版權(quán)歸本站所有,。轉(zhuǎn)載 必須 注明出處,! * 標(biāo)有 “轉(zhuǎn)載” 字樣的文章,,內(nèi)容版權(quán)歸原作者所有。 Ps:以上相關(guān)代碼均已包含在內(nèi),。 三,、CDN 加速因?yàn)檫@個(gè)API是在線生成的,如果請(qǐng)求過于頻繁,,將會(huì)影響到服務(wù)器性能和加載速度,。所以,我們有必要繼續(xù)優(yōu)化一下,。我個(gè)人想到3個(gè)解決方案: ①,、每生成一個(gè)新的二維碼圖片就緩存一份到服務(wù)器,下次若是相同的內(nèi)容,,將直接讀取,; ②,、利用偽靜態(tài)重寫請(qǐng)求地址,偽裝成靜態(tài)文件格式,,比如png,、jpg等,然后開啟免費(fèi)CDN,; ③,、結(jié)合①和②,實(shí)現(xiàn)偽靜態(tài)+CDN加速+瀏覽器緩存加速,,達(dá)到優(yōu)化加載速度,。
目前張戈博客僅使用了第 ② 種方案,已完全可以滿足博客的需求,,所以就懶得去折騰更完善的方法,,感興趣的童鞋可以自己去試試,下面說一下偽靜態(tài)規(guī)則,。 張戈博客將這個(gè)API搭建在萬網(wǎng)的免費(fèi)虛擬主機(jī)上,,所以僅分享Apache偽靜態(tài)規(guī)則,其他WEB服務(wù)器請(qǐng)自行解決,。 Apache偽靜態(tài)規(guī)則: | RewriteEngine on | | RewriteBase / | |
| | #QR二維碼 | | RewriteRule ^qr/(.*)_(.*)_(.*)_http:/(.*)_cdn\.png$ qr/index.php?m=$1&e=$2&p=$3&url=http://$4 [L] | | RewriteRule ^qr/(.*)_(.*)_(.*)_(.*)_cdn\.png$ qr/index.php?m=$1&e=$2&p=$3&url=$4 [L] |
注:以上是將API源碼上傳到網(wǎng)站根目錄下的 qr 文件夾的例子,! 偽靜態(tài)之后,這個(gè)二維碼地址就是一個(gè)正常的 png格式了,,只要到免費(fèi)CDN(比如百度云加速或360網(wǎng)站衛(wèi)士等)開啟靜態(tài)資源緩存即可實(shí)現(xiàn)CDN加速,。 四、使用范例直接訪問本文第一段代碼所保存的文件就能看到簡單的使用說明了: | 歡迎使用張戈博客在線二維碼API服務(wù),! | |
| | 使用前請(qǐng)仔細(xì)查看參數(shù)說明: | |
| | url: 二維碼對(duì)應(yīng)的網(wǎng)址 | |
| | m : 二維碼白色邊框尺寸,缺省值: 0px | |
| | e : 容錯(cuò)級(jí)別(errorLevel),,可選參數(shù)如下(缺省值 L): | | L水平 7%的字碼可被修正 | | M水平 15%的字碼可被修正 | | Q水平 25%的字碼可被修正 | | H水平 30%的字碼可被修正 | | p : 二維碼尺寸,,可選范圍1-10(具體大小和容錯(cuò)級(jí)別有關(guān))(缺省值:3) | |
| | 常規(guī)用法:http://seo./qr/?m=0&e=L&p=3&url=https:/// | |
| | CDN 加速: | | 格 式:http://seo./qr/$m_$e_$p_$url_cdn.png | | 示 例:http://seo./qr/0_l_3_https://_cdn.png |
查看效果:http://seo./qr/0_l_3_https://_cdn.png
按下F12,到 NetWork 選項(xiàng)卡查看頭部已經(jīng)可以看到百度云加速的HIT緩存標(biāo)識(shí)了,! 至于如何應(yīng)用到博客當(dāng)中,,請(qǐng)移步查看張戈博客以前分享的教程:https:///4609.html
|