<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>折腾 on MoeJue&#39;s Blog</title>
    <link>https://en.moejue.cn/zh-hant/tags/%E6%8A%98%E8%85%BE/</link>
    <description>Recent content in 折腾 on MoeJue&#39;s Blog</description>
    <generator>Hugo -- 0.151.2</generator>
    <language>zh-hant</language>
    <lastBuildDate>Sun, 02 Nov 2025 10:12:27 +0000</lastBuildDate>
    <atom:link href="https://en.moejue.cn/zh-hant/tags/%E6%8A%98%E8%85%BE/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>阿珏的部落格的國際化之路</title>
      <link>https://en.moejue.cn/zh-hant/posts/291/</link>
      <pubDate>Sun, 02 Nov 2025 10:12:27 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/291/</guid>
      <description>&lt;p&gt;最近，我給個人部落格來了次「大動作」——
從單語言版本升級到了 &lt;strong&gt;多語言站點&lt;/strong&gt;（簡體中文、繁體中文、英語、日語），
並且全流程實現了自動化。💪&lt;/p&gt;
&lt;p&gt;主要包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自動同步主站文章&lt;/li&gt;
&lt;li&gt;自動 AI 翻譯內容&lt;/li&gt;
&lt;li&gt;自動建構與部署多語言站點&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;為何選擇-hugo&#34;&gt;為何選擇 Hugo？&lt;/h2&gt;
&lt;p&gt;因為它那句自信的口號：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「The world’s fastest framework for building websites.」&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;—— 就這句話，我就決定是它了 😆。&lt;/p&gt;
&lt;p&gt;不過我沒有採用「一套主題多語言切換」的傳統做法，
而是讓 &lt;strong&gt;每種語言都有獨立主題&lt;/strong&gt;。
這樣每個語言版本都能保留自己的美學與排版風格，
真正做到「文化層面的在地化」。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;設計目標與約束-&#34;&gt;設計目標與約束 🎯&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;語言&lt;/strong&gt;：支援簡中、繁中、英文、日文，未來還可擴展。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主題&lt;/strong&gt;：每種語言使用最合適的 Hugo 主題，而非強行複用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;內容同步&lt;/strong&gt;：所有語言共用一份內容儲存庫，按需翻譯。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署策略&lt;/strong&gt;：各語言獨立建構與發布，可部署到不同分支或網域。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客製化頁面&lt;/strong&gt;：像「友鏈」、「書房」、「歸檔」等頁面要在多語言下保持一致體驗。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;多語言配置策略-&#34;&gt;多語言配置策略 🧩&lt;/h2&gt;
&lt;p&gt;我為每個語言單獨準備了一個設定檔：
&lt;code&gt;config/&amp;lt;lang&amp;gt;.toml&lt;/code&gt;，它們主要負責：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;指定主題（例如 &lt;code&gt;theme = &amp;quot;PaperMod&amp;quot;&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;定義該語言特有的 &lt;code&gt;title&lt;/code&gt; / &lt;code&gt;description&lt;/code&gt; / &lt;code&gt;keywords&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;重寫選單設定 &lt;code&gt;[[params.menu]]&lt;/code&gt;，以匹配不同主題的導航結構。&lt;/li&gt;
&lt;li&gt;注入客製化樣式，確保整體視覺一致。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這種結構非常清晰，也方便未來擴展更多語言版本。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;github-actions-自動部署矩陣-&#34;&gt;GitHub Actions 自動部署矩陣 ⚙️&lt;/h2&gt;
&lt;p&gt;CI/CD 部分完全交給 GitHub Actions 來處理。
在 &lt;code&gt;.github/workflows/hugo.yml&lt;/code&gt; 中，我使用了 &lt;strong&gt;矩陣建構&lt;/strong&gt;，
為每種語言獨立建構、發布：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;matrix:
  include:
    - lang: en
      config: config/en.toml
      publish_branch: dist-en
    - lang: zh-cn
      config: config/zh.toml
      publish_branch: dist-zh
    - lang: ja
      config: config/ja.toml
      publish_branch: dist-ja
    - lang: zh-hant
      config: config/zh-hant.toml
      publish_branch: dist-zh-hant
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;建構階段 👇&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何自製一個便攜式顯示器</title>
      <link>https://en.moejue.cn/zh-hant/posts/255/</link>
      <pubDate>Sun, 13 Apr 2025 05:55:01 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/255/</guid>
      <description>&lt;h3 id=&#34;如何手搓一個便攜式顯示器&#34;&gt;如何手搓一個便攜式顯示器&lt;/h3&gt;
&lt;h3 id=&#34;前言&#34;&gt;前言&lt;/h3&gt;
&lt;p&gt;家裡有一台老舊的筆記型電腦，除了電池不行了，其他部件都還能正常使用。然而，由於技術更新換代太快，這台筆記型電腦除了瀏覽網頁外，幾乎沒有其他用途。丟掉可惜，賣掉又不值錢。所以我決定將它改造成一個便攜式顯示器，這樣就可以連接筆記型電腦、桌上型電腦，玩遊戲、看影片了，讓它繼續發揮餘熱。 順便提一下，硬碟已經被我改造成了一個行動硬碟。&lt;/p&gt;
&lt;h3 id=&#34;材料準備&#34;&gt;材料準備&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;廢棄的顯示器&lt;/li&gt;
&lt;li&gt;LED螢幕驅動板&lt;/li&gt;
&lt;li&gt;螢幕排線&lt;/li&gt;
&lt;li&gt;按鍵板&lt;/li&gt;
&lt;li&gt;高壓板&lt;/li&gt;
&lt;li&gt;電源 (12V 5A)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;IMG_20250404_142914_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142914_04_13_2025.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;主要材料就是這些了，直接上某寶就可以買到，價格也不貴。 電源還是從我爸頸部按摩器上直接拆下來的，又省一筆。&lt;/p&gt;
&lt;h3 id=&#34;改造過程&#34;&gt;改造過程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;拆開筆記型電腦顯示器，將螢幕取出來。 &lt;img alt=&#34;IMG_20250404_142647_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142647_04_13_2025.jpg&#34;&gt; &lt;img alt=&#34;IMG_20250404_142641_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_142641_04_13_2025.jpg&#34;&gt; 如果你不知道你的螢幕所對應的驅動板，可以將螢幕後面的參數拍一張照片給商家，他們會根據你的參數給你推薦合適的驅動板。 當然如果你是電路大佬，也可以自己設計圖紙打樣手搓驅動板。&lt;/li&gt;
&lt;li&gt;接線並用熱熔膠固定 &lt;img alt=&#34;IMG_20250404_155901_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_155901_04_13_2025.jpg&#34;&gt; ps:熱熔膠真是窮人的3D打印機&lt;/li&gt;
&lt;li&gt;通電測試 &lt;img alt=&#34;IMG_20250404_150154_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_150154_04_13_2025.jpg&#34;&gt; 我這邊為了圖省事，已經讓商家幫我裝好了相應的驅動。&lt;/li&gt;
&lt;li&gt;接入訊號 &lt;img alt=&#34;IMG_20250404_151208_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_151208_04_13_2025.jpg&#34;&gt;&lt;/li&gt;
&lt;li&gt;測試按鍵板功能調節 &lt;img alt=&#34;IMG_20250404_151318_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_151318_04_13_2025.jpg&#34;&gt;&lt;/li&gt;
&lt;li&gt;使用瓦楞紙做一個外殼 &lt;img alt=&#34;IMG_20250404_173602_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250404_173602_04_13_2025.jpg&#34;&gt; 看來我用廢紙皮做外殼的天賦還是不錯的。怕太醜還貼了張壁紙上去。 家裡有3D打印機的小夥伴直接設計外殼打印出來，效果會更好。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;成品&#34;&gt;成品：&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;IMG_20250413_104214_04_13_2025&#34; loading=&#34;lazy&#34; src=&#34;https://gh-proxy.com/github.com/iAJue/MoeJueBlogPic/blob/master/Images/2025/04/13/IMG_20250413_104214_04_13_2025.jpg&#34;&gt; 前面被熱熔膠黏得有點慘不忍睹。&lt;/p&gt;</description>
    </item>
    <item>
      <title>一款開源簡潔高顏值的酷狗第三方客戶端V1.0.0 Beta</title>
      <link>https://en.moejue.cn/zh-hant/posts/225/</link>
      <pubDate>Sun, 03 Nov 2024 12:48:04 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/225/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Logo&#34; loading=&#34;lazy&#34; src=&#34;https://github.com/iAJue/MoeKoeMusic/raw/main/images/logo.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;moekoe-音樂&#34;&gt;MoeKoe 音樂&lt;/h2&gt;
&lt;p&gt;一款開源、簡潔、高顏值的酷狗第三方客戶端&lt;br&gt;
&lt;a href=&#34;https://github.com/iAJue/MoeKoeMusic/&#34;&gt;&lt;strong&gt;🌎 GitHub 儲存庫&lt;/strong&gt;&lt;/a&gt;  |  &lt;a href=&#34;https://github.com/iAJue/MoeKoeMusic/releases&#34;&gt;&lt;strong&gt;📦️ 下載安裝包&lt;/strong&gt;&lt;/a&gt;  |  &lt;a href=&#34;https://MoeJue.cn&#34;&gt;&lt;strong&gt;💬 瀏覽部落格&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;images&#34; loading=&#34;lazy&#34; src=&#34;https://github.com/iAJue/MoeKoeMusic/raw/main/images/5.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;早在約 10 年前，當時我還在使用網頁版 QQ 時就已經開始使用酷狗音樂了（也是十多年的老粉絲了），所以這些年收藏的歌曲全部都在上面。後來我也嘗試開始使用網易雲或 QQ 音樂，也嘗試把酷狗的歌單匯入進去，但是效果都不盡理想。我聽的大多是日漫 OP，好多歌曲都沒辦法找到。&lt;/p&gt;
&lt;p&gt;兜兜轉轉最後還是回到酷狗，但是在 Mac 端的酷狗，時常可能會出現不能播放的情況，雖說介面沒什麼功能，但也挺好的。在網友的推薦下，我現在一直是在酷狗的&lt;a href=&#34;https://t1.kugou.com/d2tBza3CSV2&#34;&gt;概念版&lt;/a&gt;上聽歌，並且是市面上為數不多能免費聽 VIP 歌曲的音樂播放軟體了，強力推薦。&lt;/p&gt;
&lt;p&gt;我在我的個人介紹頁面說我特別喜歡聽歌，尤其是日漫 OP。怎麼證明呢？（之前我網頁版歌單也年久失修了）那就自己開發一個音樂播放器。&lt;/p&gt;
&lt;h2 id=&#34;-特性&#34;&gt;✨ 特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;✅ 使用 Vue.js 全家桶開發&lt;/li&gt;
&lt;li&gt;🔴 酷狗帳號登入（掃碼/手機/帳號登入）&lt;/li&gt;
&lt;li&gt;📃 支援歌詞顯示&lt;/li&gt;
&lt;li&gt;📻 每日推薦歌曲&lt;/li&gt;
&lt;li&gt;🚫🤝 無任何社交功能&lt;/li&gt;
&lt;li&gt;🔗 官方伺服器直連，無任何第三方 API&lt;/li&gt;
&lt;li&gt;✔️ 每日自動領取 VIP，登入即是 VIP&lt;/li&gt;
&lt;li&gt;🎨 主題色切換&lt;/li&gt;
&lt;li&gt;👋 啟動問候語&lt;/li&gt;
&lt;li&gt;⚙️ 多平台支援&lt;/li&gt;
&lt;li&gt;🛠 更多特性開發中&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;待辦清單&#34;&gt;待辦清單&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] 📺 支援 MV 播放&lt;/li&gt;
&lt;li&gt;[ ] 🌚 自動切換淺色/深色模式&lt;/li&gt;
&lt;li&gt;[ ] 👆 支援 Touch Bar&lt;/li&gt;
&lt;li&gt;[ ] 🖥️ 支援 PWA，可在 Chrome/Edge 中點擊網址列右邊的 ➕ 安裝到電腦&lt;/li&gt;
&lt;li&gt;[ ] 🟥 支援 Last.fm Scrobble&lt;/li&gt;
&lt;li&gt;[ ] 🎧 支援 Mpris&lt;/li&gt;
&lt;li&gt;[ ] ⌨️ 自訂快捷鍵和全域快捷鍵&lt;/li&gt;
&lt;li&gt;[ ] 🤟 多語言支援&lt;/li&gt;
&lt;li&gt;[ ] 📻 桌面歌詞&lt;/li&gt;
&lt;li&gt;[ ] ⚙️ 系統架構優化&lt;/li&gt;
&lt;li&gt;[ ] 🎶 歌曲、歌單管理/收藏、取消收藏&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-安裝&#34;&gt;📦️ 安裝&lt;/h2&gt;
&lt;p&gt;請造訪本專案的 &lt;a href=&#34;https://github.com/iAJue/MoeKoeMusic/releases&#34;&gt;Releases&lt;/a&gt; 頁面下載安裝包。&lt;/p&gt;</description>
    </item>
    <item>
      <title>重生之我要做商城 - 萌音商城V1.0上線</title>
      <link>https://en.moejue.cn/zh-hant/posts/203/</link>
      <pubDate>Wed, 02 Oct 2024 06:17:50 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/203/</guid>
      <description>&lt;p&gt;萌音系列的第N+1個項目來了呢。這其實又是一個鴿了好幾年的項目了，這回總算能把坑填上了。&lt;/p&gt;
&lt;h5 id=&#34;先上項目地址-httpsmoekoecn&#34;&gt;先上項目地址: &lt;a href=&#34;https://MoeKoe.cn&#34;&gt;https://MoeKoe.cn&lt;/a&gt;&lt;/h5&gt;
&lt;h4 id=&#34;我為什麼一直在做項目&#34;&gt;我為什麼一直在做項目?&lt;/h4&gt;
&lt;p&gt;這個問題就很有意思了，為什麼一直在做各種項目，而且還是不掙錢的東西。接觸過我之前一些項目的小夥伴都知道我開發什麼項目都是本著自己用的原則在創作的，當然這次也不例外。一直我就想在某個平台賣賣我那些留著沒用，丟了捨不得的小玩意，同時分享好玩有趣的產品給大家（未來可能還有我自己的IP產品）。「想把最美好的事和物分享給最美好的你」就算，本著「別人有我也要有」的原則，我也得有。&lt;/p&gt;
&lt;p&gt;如果說我只是想賣點小玩意，我為何不直接上淘寶、閒魚這樣的平台呢？退一萬步講，就算不上這些平台，我也可以自己搭建一個現成的商城系統啊，現在市面上成熟好用的系統一抓一大把喔，為何還要自己開發呢？&lt;/p&gt;
&lt;p&gt;一句話，因為我喜歡，這是我的愛好，我喜歡創造，喜歡做點有意思的東西和事。我想成為一個厲害而又有趣的人，而不是一個只會活著的普通人，我想認識更多有趣的靈魂。厲害對於我的定義並不是說他技術有多厲害、賺錢有多厲害，而是一個人面對挫折和困苦的時候，依然能笑著面對，依然能保持樂觀、不忘初心，這樣的人，我願稱他為厲害的人。&lt;/p&gt;
&lt;p&gt;明明是一個發布新項目的文章，又給我寫成大白話部落格了，哈哈哈。&lt;/p&gt;
&lt;h3 id=&#34;項目介紹&#34;&gt;項目介紹&lt;/h3&gt;
&lt;p&gt;最近在搞什麼？在搞粉嫩粉嫩的東西，一個二次元少女萌系風格的魔法少女商城。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;歡迎來到魔法少女的奇幻世界，開啟探索二次元無限可能的冒險之旅！這是專為二次元愛好者量身打造的線上商城。在這裡，你能找到最閃耀的魔法道具、最萌系的變身服飾，還有豐富多樣的二次元周邊商品。無論你鍾情於可愛的萌物，還是酷炫的收藏品，這裡都能滿足你對二次元的所有熱愛與期待！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;點開網址你會發現一個讓你眼前一亮（粉）的感覺，沒錯，這就是我想要的風格，粉嫩粉嫩的，少女心爆棚，卡哇伊的感覺，這樣才能突出我的個性。&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80pi6l1vj22bm1g2kjp.jpg&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;技術棧&#34;&gt;技術棧&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Vue.js3&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Pinia&lt;/li&gt;
&lt;li&gt;Axios&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;li&gt;Mysql&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;前後端分離&lt;/li&gt;
&lt;li&gt;MySQL執行緒池&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vue.js全家桶真是太棒了，省去自己寫原生的煩惱，目前國際化插件(i18n)這個版本還沒有上，由於市面上的UI庫並不直接符合我對這個項目的定位和我的個性，所以並沒有使用現成的界面庫，全靠自己手撸。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80vhmhh0j21ys1fqqv7.jpg&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;介紹&#34;&gt;介紹:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;支援虛擬幣USDT（只需填寫錢包地址，自動監控到帳，無須外置程式，監控系統有新訂單自動啟動，30分鐘無新訂單自動休眠，減少資源消耗）&lt;/li&gt;
&lt;li&gt;支援支付寶當面付支付，即時到帳，自動回調&lt;/li&gt;
&lt;li&gt;支援使用者註冊、登入、登出、修改密碼、修改頭像、商品評論&lt;/li&gt;
&lt;li&gt;支援商品管理、商品分類管理&lt;/li&gt;
&lt;li&gt;支援訂單管理、訂單支付、訂單發貨、物流查詢&lt;/li&gt;
&lt;li&gt;支援商品訂單數據分析&lt;/li&gt;
&lt;li&gt;全站響應式佈局&lt;/li&gt;
&lt;li&gt;前後端分離&lt;/li&gt;
&lt;li&gt;MySQL執行緒池&lt;/li&gt;
&lt;li&gt;系統的基本資訊設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80ywg8ntj21y21f2x6p.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;第一個版本就只增加了基礎和必要的功能，新功能在設計的時候就已經考慮到了，資料庫和程式碼都做了預留（所以當你看到某一個按鈕點擊了沒有反應的時候不要緊張，因為它後面根本就沒有程式碼），會在未來的版本中進行添加。目前商城售賣的是一種實物發貨的形式，未來會加上虛擬商品的售賣，基本就是把&lt;a href=&#34;https://pay.MoeKoe.cn&#34;&gt;萌音發卡&lt;/a&gt;的功能都直接給合併進來了。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80ynckudj21lc1fs7wh.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;我對這個項目的命名是mall，而不是shop，所以之後它有機會變成一個商場，而不只是一個商店。&lt;/p&gt;
&lt;h3 id=&#34;未來&#34;&gt;未來:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;多商戶模式。直接使用者申請入駐商城成為商家，借助萌音商城進行售賣自己的產品&lt;/li&gt;
&lt;li&gt;商品多產品分類。產品更多的規格分類&lt;/li&gt;
&lt;li&gt;更多的支付方式。因為目前作者沒有其他的支付權限，僅對接了兩個&lt;/li&gt;
&lt;li&gt;支援虛擬商品。算是把發卡的功能給集成進來了&lt;/li&gt;
&lt;li&gt;商品海報宣傳圖生成&lt;/li&gt;
&lt;li&gt;郵件系統。可有可無的通知功能而已&lt;/li&gt;
&lt;li&gt;右下角的多功能選單。下方的笑臉小人，會成為一個智能導航系統&lt;/li&gt;
&lt;li&gt;增加商品介面數據顯示。數據一目了然&lt;/li&gt;
&lt;li&gt;多語言支援(i18n)。跟隨國際化潮流，走向世界&lt;/li&gt;
&lt;li&gt;簡訊系統。跟郵件系統一模一樣&lt;/li&gt;
&lt;li&gt;Redis快取。本來是準備在這個版本加上去的，不過數據的控制也還好&lt;/li&gt;
&lt;li&gt;暗黑模式。也是跟隨潮流&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80wkxv32j21wq1f2e81.jpg&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;如何獲取原始碼&#34;&gt;如何獲取原始碼?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;贊助阿珏醬 233RMB+ 即可獲取原始碼。&lt;/li&gt;
&lt;li&gt;曾經贊助過阿珏醬的小夥伴（如果之前贊助的總金額不足233需要進行補差價的形式，如果超過了233則只需再贊助1元重新簽訂契約即可直接獲得）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;點擊這裡&lt;a href=&#34;https://jq.qq.com/?_wv=1027&amp;amp;k=5cvR0GN&#34;&gt;某社群官方交流群&lt;/a&gt;去贊助阿珏醬。因為放不了個人QQ連結，所以我放了群連結，加群@群主即可。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80y9po72j21ru1fi4qp.jpg&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;為什麼不設商業版&#34;&gt;為什麼不設商業版?&lt;/h4&gt;
&lt;p&gt;為什麼不設商業版，而是贊助版，這有什麼區別呢？商業版，那就需要一個授權系統，同時可能還不一定提供原始碼，可能還需要提供技術支援，並且需要更多完善的功能。商業版的錢是給項目本身的，和作者是一種利益關係，一種商業合同的模式，作者需要對其（人）負責。（我特別不喜歡這種感覺，這可能就是我掙不到錢的原因吧）&lt;/p&gt;
&lt;p&gt;而贊助版，贊助的是作者本人，是一種個人意願，一種朋友與朋友之間約定的一種契約模式，作者只對項目本身負責。&lt;/p&gt;
&lt;p&gt;當然你可能會覺得我在玩文字遊戲，鑽文字的空子。所以嘛，這完全就是贊助行為了。雖然這次的贊助門檻有那麼點商業的氣息，那是因為我和我老婆們要恰飯的嘛 &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu800yh27oj21t00t8kjl.jpg&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;提示&#34;&gt;提示&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;贊助版提供Vue前端原始碼+編譯後的靜態檔案+Node.js後端源檔案。&lt;/li&gt;
&lt;li&gt;所有贊助版獲得的都是源檔案，不存在加密或混淆的情況，還請不要洩露，同時也是保障自己的權益。&lt;/li&gt;
&lt;li&gt;修改原始碼需要一定基礎程式設計知識，如果不會，請勿修改。&lt;/li&gt;
&lt;li&gt;提供一次寶塔面板的部署服務。&lt;/li&gt;
&lt;li&gt;網站的介面效果更傾向少女萌系風格，可能並不適用大眾向的產品，還請注意。&lt;/li&gt;
&lt;li&gt;因為程式碼具有可複製性，契約一經簽訂，不可撤銷，還請諒解。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu80wx88oyj21sc1g0kik.jpg&#34;&gt; 這次還是跟以往一樣採用了贊助版的模式獲取原始碼，為什麼這次又開放了原始碼的獲取呢？多少是受之前萌音社群的影響吧，萌音社群是我花了兩個月多精心寫出來的，同時沒有接受贊助獲得原始碼這個方式，純屬自己營運，那些要贊助的都被我勸退了，雖然最後還是收到了一筆贊助。最後呢，感覺對不起萌音社群，被自己給砸手裡了，沒讓更多人知道它的存在。那為什麼不直接開源呢？那樣我反而覺得更對不起這個項目，會讓人覺得這是一個觸手可得的東西，反而不再珍視它。雖然沒有直接開源，但我會把項目相關的架構和設計思路和部分程式碼發出來，給大家參考，並不影響大家學習。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用ESP8266-NodeMCU開發板顯示一下我的QQ頭像</title>
      <link>https://en.moejue.cn/zh-hant/posts/200/</link>
      <pubDate>Sun, 16 Jun 2024 12:50:42 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/200/</guid>
      <description>&lt;p&gt;诶，說好的自己寫esp8266的開發板韌體的我回來了。 20年說好的，今天回來還願了 &lt;a href=&#34;https://www.cnblogs.com/Ajue/p/18202561&#34;&gt;ESP8266串口WiFi模塊 - WiFi殺手&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今天我們把OLED顯示屏也接上，我此次買的是4腳的OLED(128*64)，不支持彩色顯示的。&lt;/p&gt;
&lt;h3 id=&#34;nodemcu開發板&#34;&gt;NodeMCU開發板&lt;/h3&gt;
&lt;p&gt;NodeMCU是一個開源的IoT物聯網硬體開發板，由於它支持WIFI功能且使用方法十分類似Arduino開發板，所以近些年獲得了越來越多來自全世界的創客朋友們的青睞。NodeMCU尺寸與Arduino Nano類似。它並不是Arduino團隊開發的，但是我們也可以使用Arduino IDE 對它進行開發。&lt;/p&gt;
&lt;p&gt;作為萬物互聯的IoT基礎，首先物聯網控制板的成本不能過高。高昂的物聯網控制元件不利於項目成本控制也不利於廣大創客愛好者學習和使用它。在這一點上，NodeMCU比樹莓派以及Arduino家族的IoT平台等更具優勢。&lt;/p&gt;
&lt;p&gt;細心的朋友可能已經發現了，這會我開發板叫做ESP8266-NodeMCU。然而在其它的網站或資料中，有時是用ESP8266有時是用NodeMCU。那麼ESP8266和NodeMCU之間是什麼關係呢？&lt;/p&gt;
&lt;p&gt;ESP8266是一塊晶片（被鐵殼子包住的方形的東西），而NodeMCU則是以ESP8266晶片為核心的開發板，如下圖所示。 &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu4vo3lpljj21hc140n7w.jpg&#34;&gt; 要想對ESP8266晶片來進行實驗操作是很困難的，因為我們很難將小小一枚晶片上的引腳與我們的電腦連接起來然後再進行上傳程式等操作。於是便誕生了圍繞ESP8266晶片的各種開發板。NodeMCU就是這些開發板中的一員。&lt;/p&gt;
&lt;p&gt;NodeMCU開發板上的兩排插針與ESP8266晶片的引腳相連。有了開發板上的兩排插針，我們就可以很輕鬆的使用杜邦線將晶片的引腳接到實驗電路中。NodeMCU開發板上還配有USB接口以及電壓轉換電路。這些為我們提供了很大的便利。我們只要用一根USB數據線就可以輕鬆的實現為ESP8266供電以及上傳程式的操作。當然，NodeMCU開發板上的電路功能還不止這些，我就不再繼續延伸下去了&lt;/p&gt;
&lt;h3 id=&#34;驅動的安裝&#34;&gt;驅動的安裝&lt;/h3&gt;
&lt;p&gt;雖然之前已經講過開發板的驅動安裝了，但是不夠詳細。&lt;/p&gt;
&lt;p&gt;目前市面上的ESP8266驅動有多種，即使是同一塊NodeMcu的開發板驅動也可能是不一樣的。目前主流的是CH340和CP210X的驅動&lt;/p&gt;
&lt;p&gt;驅動的下載請直接去晶片的製造商的官網下載即可 CP210X：&lt;a href=&#34;https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers&#34;&gt;https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers&lt;/a&gt; CH340C：&lt;a href=&#34;https://www.wch.cn/downloads/CH341SER_EXE.html&#34;&gt;https://www.wch.cn/downloads/CH341SER_EXE.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下載適合自己平台的驅動安裝程式 需要看清楚自己的串口晶片型號是否在驅動程式的支持範圍內&lt;/p&gt;
&lt;h3 id=&#34;如何查看自己的開發板需要什麼驅動&#34;&gt;如何查看自己的開發板需要什麼驅動&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;直接看，下圖中豎著的長方形黑條，那個就是USB轉串口晶片。上面會寫明晶片的型號名稱 &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu4voc3xefj21hc140n7w.jpg&#34;&gt;&lt;/li&gt;
&lt;li&gt;問你買的商家&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;顯示屏的焊接&#34;&gt;顯示屏的焊接&lt;/h3&gt;
&lt;p&gt;不要焊接錯了，不然會燒壞晶片的 OLED接線：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GND - GND&lt;/li&gt;
&lt;li&gt;VCC - VCC&lt;/li&gt;
&lt;li&gt;SCL - GPIO5(D1)&lt;/li&gt;
&lt;li&gt;SDA - GPIO4(D2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;烙鐵加熱中 &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu4voij5a5j21hc1404dj.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;下面就是焊接好的，注意接線，不一定是按我這個順序的，要看名稱 &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu4voof65aj21hc140dqi.jpg&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;arduino-ide的安裝&#34;&gt;Arduino IDE的安裝&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;下載arduino IDE &lt;a href=&#34;https://www.arduino.cc/en/software&#34;&gt;https://www.arduino.cc/en/software&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;安裝 安裝還要我教？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置 點擊工具-開發板-開發板管理器,在設置中寫上開發板地址：&lt;a href=&#34;http://arduino.esp8266.com/stable/package_esp8266com_index.json&#34;&gt;http://arduino.esp8266.com/stable/package_esp8266com_index.json&lt;/a&gt; 之後就會自動下載相應的支援庫文件了，期間需要保證網絡的科學性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;選擇開發板 NodeMCU1.0(ESP-12EModule)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;選擇端口 在電腦的設備管理器中找到你的開發板的COM口&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;arduino代碼&#34;&gt;Arduino代碼&lt;/h3&gt;
&lt;p&gt;有時候我覺得我逼逼叨叨說一大堆還不如直接上代碼來的直接，我覺得你肯定也是想直接看代碼的而不是聽我說一堆廢話 我也盡可能在代碼中註釋了(編寫arduino代碼請遵循C/C++語言規範)&lt;/p&gt;
&lt;p&gt;下列的例子中，連接WiFi使用的是庫，首次連接需要使用手機連接ESP8266發送出來的WiFi先進行配網操作。寫出屏幕使用的是庫，支持中文直接寫出&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;這是一個簡單的連接WiFi和屏幕顯示圖片的示例&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#include &amp;lt;Adafruit_GFX.h&amp;gt;
#include &amp;lt;Adafruit_SSD1306.h&amp;gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt;
#include &amp;lt;NTPClient.h&amp;gt;
#include &amp;lt;WiFiManager.h&amp;gt;
#include &amp;lt;U8g2lib.h&amp;gt;

#define SDA 4  // SDA引脚，默认gpio4(D2)
#define SCL 5  // SCL引脚，默认gpio5(D1)

Adafruit_SSD1306 oled(128, 64, &amp;amp;Wire,-1);   //OLED 屏幕实例化
WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP,&amp;#34;pool.ntp.org&amp;#34;, 8*3600, 60000);

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /*clock=*/SCL, /*data=*/SDA, /*reset=*/U8X8_PIN_NONE);           // 选择显示屏幕

// 只执行一次
void setup() {

  u8g2.begin();            // 初始化
  u8g2.enableUTF8Print();  // UTF8允许
  u8g2.setFont(u8g2_font_wqy12_t_gb2312b); //字体大小   u8g2_font_wqy15_t_gb2312b  

  // 初始化屏幕
  OLED_Init();

  OLED_Showchin(1,13,&amp;#34;正在连接WiFi....&amp;#34;,0);
  WiFiManager wifiManager;
  wifiManager.autoConnect(&amp;#34;ESP8266&amp;#34;);

  OLED_Showchin(1,27,&amp;#34;WiFi连接成功！&amp;#34;,0);
  OLED_Showchin(1,41,&amp;#34;名称： &amp;#34; + WiFi.SSID(),0);
  OLED_Showchin(1,55,&amp;#34;IP: &amp;#34; + WiFi.localIP().toString(),1);

  // 获取时间
  timeClient.begin();
  u8g2.setFont(u8g2_font_wqy15_t_gb2312b); //字体大小   u8g2_font_wqy15_t_gb2312b  

  OLED_Showchin(1,13,&amp;#34;宁小建&amp;#34;,0);
  OLED_Showchin(1,27,&amp;#34;hhhhhhhhhhhh&amp;#34;,0);
  OLED_Showchin(1,55,&amp;#34;大傻逼哈哈哈&amp;#34;,1);

  timeClient.update();
  OLED_Showchin(1,20,&amp;#34;当前北京时间: &amp;#34;,0);
  OLED_Showchin(1,41,timeClient.getFormattedTime(),1);
  delay(1000);
  OLED_img();
}

// 重复执行程序
void loop() {
  // 更新时间
  // timeClient.update();
  // OLED_Showchin(1,27,&amp;#34;当前北京时间: &amp;#34;,0);
  // OLED_Showchin(1,41,timeClient.getFormattedTime(),0);
}

// 打印输出到屏幕（支持中文）
void OLED_Showchin(uint8_t x, uint8_t y, String string, uint8_t boot) {
  u8g2.setCursor(x, y);  //设置显示坐标
  u8g2.print(string);  // 指定缓存区需要打印的字符串
  u8g2.sendBuffer();          // 将定位信息发送到缓冲区
  if(boot == 1){
    delay(1000);
    u8g2.clearBuffer();     // 清除缓存，其实初始化里有清除，循环时一定要加上
  }
}

// 屏幕初始化
void OLED_Init() {
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);     //&amp;#34;SSD1306_SWITCHCAPVCC&amp;#34;表示显示器为OLED ,&amp;#34;0x3C&amp;#34;为OLED屏幕默认通信地址
  oled.setTextColor(WHITE);//开像素点发光
  oled.clearDisplay();//清屏
}

// 输出屏幕
void OLED_ShowString(uint8_t x, uint8_t y, uint8_t font_size, String string) {
  oled.setTextSize(font_size);    //设置字体尺寸 (&amp;gt;=1)
  oled.setCursor(x, y);           //设置显示坐标
  oled.println(string);           //显示内容
  oled.display();                 //开启显示
}

// 绘画
void OLED_img() {
  //  图片数据
    const unsigned char gImage_1[518] = { 0X00,0X01,0X40,0X00,0X40,0X00,
  0X00,0X40,0X00,0X00,0X00,0X3E,0XF0,0X00,0X00,0X80,0X00,0X00,0X00,0X1F,0XE0,0X00,
  0X00,0X00,0X00,0X00,0X00,0X06,0XB0,0X00,0X01,0X00,0X00,0X00,0X00,0X03,0XF8,0X00,
  0X00,0X00,0X00,0X00,0X00,0X03,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XDC,0X00,
  0X04,0X00,0X00,0X00,0X00,0X01,0XC0,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,0X80,0X00,
  0X06,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X10,0X00,0X00,0X00,
  0X08,0X00,0X00,0X00,0X0E,0X00,0X00,0X00,0X08,0X00,0X00,0X00,0X8F,0X00,0X00,0X00,
  0X00,0X00,0X02,0X02,0X47,0X00,0X00,0X00,0X00,0X00,0X01,0X10,0X63,0X80,0X00,0X00,
  0X00,0X00,0X01,0XC9,0X73,0XC0,0X00,0X00,0X00,0X00,0X00,0XE4,0X79,0XE0,0X00,0X00,
  0X00,0X02,0X00,0XFA,0XF9,0XE0,0X00,0X00,0X10,0X02,0X00,0X7D,0X8C,0XF0,0X00,0X00,
  0X10,0X03,0X01,0X7E,0X90,0XF1,0X80,0X00,0X10,0X01,0X20,0XFD,0X1C,0X7B,0XE0,0X00,
  0X00,0X01,0XA0,0X7D,0X03,0X7B,0X20,0X00,0X10,0X01,0XD8,0XFF,0X8B,0X7E,0X30,0X00,
  0X00,0X01,0XFC,0X7F,0X83,0XB6,0X10,0X00,0X00,0X00,0XF7,0XFF,0XC7,0XBE,0X10,0X00,
  0X00,0X01,0X8F,0XFF,0XE3,0XF6,0X10,0X00,0X01,0X01,0X4F,0XFF,0XFF,0XFF,0X10,0X00,
  0X00,0X01,0XCF,0XFF,0XFF,0XDF,0X10,0X00,0X00,0X01,0XC3,0XFF,0XFF,0XDF,0X70,0X00,
  0X01,0X03,0XE3,0XFF,0XFF,0XDF,0XE0,0X00,0X04,0X01,0XE7,0XFF,0XFF,0XDF,0XE4,0X00,
  0X07,0X00,0XFB,0XFF,0XFF,0XDF,0XC0,0X00,0X07,0X00,0XFB,0XFF,0XFF,0XFE,0X00,0X00,
  0X13,0X00,0X7F,0XFF,0XFF,0XFC,0X00,0X00,0X01,0X20,0X3F,0XFF,0XFF,0XFC,0X00,0X00,
  0X00,0X00,0X3F,0XFF,0XFF,0XF8,0X00,0X0B,0X00,0X00,0X1F,0XFE,0X0F,0XF8,0X00,0X1F,
  0X00,0X00,0X1F,0XF8,0X6F,0XF0,0X00,0XFF,0X00,0X00,0X1F,0XE1,0XFF,0XF0,0X05,0XFF,
  0X00,0X00,0X0F,0XF3,0XFF,0XE0,0X03,0XFF,0X00,0X40,0X0F,0XF7,0XFF,0XC0,0X07,0XFF,
  0X00,0X00,0X07,0XFF,0XFF,0X80,0X07,0XFF,0X08,0X00,0X07,0XFF,0XFF,0X00,0X0F,0XFF,
  0X00,0X00,0X23,0XFF,0XFE,0X00,0X0F,0XFF,0X00,0X08,0X60,0XFF,0XFE,0X00,0X0F,0XFF,
  0X00,0X40,0X20,0X3F,0XFE,0X00,0X1F,0XFF,0X00,0X00,0X10,0X0B,0XFF,0X80,0X1F,0XFF,
  0X00,0X00,0X40,0X00,0X3F,0X00,0X1F,0XFF,0X00,0X00,0X10,0X00,0X3F,0X00,0X1F,0XFF,
  0X20,0X00,0X02,0X00,0X3F,0X00,0X3F,0XFF,0X00,0X00,0X00,0X00,0X7F,0X80,0X3F,0XFF,
  0X00,0X00,0X00,0X10,0X7F,0X80,0X7F,0XFF,0X00,0X00,0X00,0X80,0X7F,0X80,0X7F,0XFF,
  0X10,0X00,0X00,0X00,0X7F,0X80,0XFF,0XFF,0X30,0X00,0X00,0X00,0X7F,0X80,0XFF,0XFF,
  0X10,0X10,0X00,0X00,0X7F,0XC1,0XFF,0XFF,0X00,0X00,0X00,0X00,0X7F,0XF3,0XFF,0XFF,
  0X00,0X00,0X01,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X04,0X3F,0XFF,0XFF,0XFF,
  0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X00,0X10,0X80,0X1F,0XFF,0XFF,0XFF,
  0X01,0X00,0X00,0X05,0X1F,0XFF,0XFF,0XFB,0X00,0X00,0X00,0X00,0X1F,0XF7,0XFF,0XFC,
  0X00,0X00,0X00,0X00,0X1F,0XFB,0XFF,0XFF,0X00,0X00,0X40,0X00,0X19,0XFF,0XFF,0XFF,
  };

  oled.clearDisplay();
  oled.drawBitmap(3, 1, gImage_1, 64, 64, WHITE);
  oled.display();
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/large/78350c19ly8hu4vppewusj21hc140qb3.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>真 · 逃避現實</title>
      <link>https://en.moejue.cn/zh-hant/posts/116/</link>
      <pubDate>Fri, 18 Sep 2020 06:17:34 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/116/</guid>
      <description>&lt;p&gt;一直以來我都有一個想買VR設備的願望，今天終於圓了&lt;br&gt;
在 @本群吉祥物 的推薦下，買了Oculus品牌的VR一體機&lt;/p&gt;
&lt;p&gt;開卡省錢卡 -&amp;gt; 領優惠券 -&amp;gt; 儲值 -&amp;gt; 下單 -&amp;gt; 一氣呵成 （心在淌血）&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gius6o43luj30im0im0w1.jpg&#34;&gt;&lt;br&gt;
由於Oculus品牌沒有進入中國市場等原因，所以我這也捆綁買了一個千兆的路由器&lt;br&gt;
到貨就是兩個大箱子&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gius8qrdgbj31hc0u0gqr.jpg&#34;&gt;&lt;br&gt;
一個是裝著VR本體的，商家額外贈送了一個USB充電電池，SMARTOOOLS西班牙品牌，貌似還行&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giusi2qqxej31hc0u0jwj.jpg&#34;&gt;&lt;br&gt;
另外一個箱子則是我的千兆路由器和好幾百一根的USB3.0 link線&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giusm81bmtj31hc0u0dkw.jpg&#34;&gt;&lt;br&gt;
長得跟個花生殼似的路由器&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giusn2c05tj30u01hcafe.jpg&#34;&gt;&lt;br&gt;
一堆看不懂的說明書，還是外置風扇(#哭笑)。由於這個路由器品牌也是國外的，三線插頭是歐洲標準，國內的三孔插座還得接個轉換器&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giusn4g1sgj31hc0u0gql.jpg&#34;&gt;&lt;br&gt;
外包裝 - 反面，下面放著一些熱門遊戲推薦&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut1x3dwpj31hc0u0aet.jpg&#34;&gt;&lt;br&gt;
正面，簡約炫酷&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut2ajwujj30u01hctbt.jpg&#34;&gt;&lt;br&gt;
包裝裡面的盒子，印著Oculus的logo&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut3pv2esj30u01hcdii.jpg&#34;&gt;&lt;br&gt;
掀起蓋子，哇塞&lt;br&gt;
Oculus Quest 六自由度VR，是目前市面上最強VR一體機&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut3ugoa8j30u01hcn20.jpg&#34;&gt;&lt;br&gt;
官方有附帶一對手柄電池，和設備基本操作說明書，和一本厚厚的詳細到看不懂的說明書&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut3ykg0oj30u01hc0wf.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut4b7xeoj30u01hcdk1.jpg&#34;&gt;&lt;br&gt;
擺拍，主機+左右手柄&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut4ctdjuj31hc0u0wjh.jpg&#34;&gt;&lt;br&gt;
接下來就是開機上手，下載我心心念念已久的Beat Saber、VRChat&amp;hellip;&amp;hellip;開啟我的逃避現實之旅&amp;hellip;&amp;hellip;..&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1giut4iexgwj30mf0sgtcc.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;後話：&lt;br&gt;
一般開箱我都不做評測，因為專業的評測需要專業的學術知識去支撐，還需要會說那些厲害的術語。但是我不會，我也不想誤導看我文章的人，一本正經的胡說八道。我僅僅只是說我想說的話&lt;br&gt;
讓我在VRChat裡等你們，之後有空的話我也會拍我遊玩的影片到小破站&lt;/p&gt;
&lt;p&gt;如果有想進一步了解Oculus Quest的，我這邊推薦一個專業的評測影片。&lt;br&gt;
Oculus Quest VR 讓我們離「刀劍神域」「頭號玩家」還有多遠？&lt;br&gt;
&lt;a href=&#34;https://www.youtube.com/watch?v=2z-QyogFp9o&amp;amp;list=LL7N4D2xapjcfH_WEdH-Z0Tg&amp;amp;index=13&amp;amp;t=27s&#34;&gt;https://www.youtube.com/watch?v=2z-QyogFp9o&lt;/a&gt;   (如果能打開的話)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android 檢視 APK 安裝包的 AndroidManifest.xml 檔案</title>
      <link>https://en.moejue.cn/zh-hant/posts/110/</link>
      <pubDate>Sun, 19 Apr 2020 09:15:54 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/110/</guid>
      <description>&lt;p&gt;&lt;strong&gt;起因&lt;/strong&gt;
上週在做安卓系統的廠商推送功能，某些機型無法離線廠推，所以準備解包apk看一下打包參數是否出問題。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;序言&lt;/strong&gt;
在Android開發中，可能需要從我們自己的應用程式跳轉到別的應用程式的介面，但是在不知道別的應用程式的包名以及類名（class name）的情況下，是很難做到這一點的。有個最簡單的方法就是下載應用程式的apk檔案，然後修改副檔名為zip或者rar，之後解壓縮檔案。在解壓縮出來的檔案中，就會有一個AndroidManifest.xml的檔案，但是打開之後，可能是亂碼，這就尷尬了，那怎麼辦呢？&lt;/p&gt;
&lt;p&gt;AXMLPrinter2.jar是一款常用的apk反編譯工具，主要用於反編譯apk檔案，包括包名、版本號和圖示等資訊，可以用AXMLPrinter2對androidmanifest.xml反編譯進行明文查看。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;使用方法&lt;/strong&gt;
1、 下載工具AXMLPrinter2.jar工具 地址：https://code.google.com/archive/p/android4me/downloads
2、 將要查看的AndroidManfist.xml檔案複製至與工具相同資料夾下
3、 在當前資料夾打開DOS視窗
4、 執行如下命令&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;java -jar AXMLPrinter2.jar AndroidManifest.xml &amp;gt;&amp;gt; AndroidManifest.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;執行完該命令後會在該資料夾生成AndroidManifest.txt檔案，該檔案便是解碼後的檔案。&lt;/p&gt;
&lt;p&gt;當然，可能有些執行後就會報錯：「&amp;lsquo;java&amp;rsquo; 不是內部或外部命令，也不是可執行的程式或批次處理檔案。」
這是因為沒有安裝Java環境或未配置環境變數導致的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;安裝JDK&lt;/strong&gt;
首先先來回顧下安裝JDK的過程&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;下載JDK並安裝&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;JDK1.6、1.7、1.8任君選擇下載，想用哪個直接下載哪個吧
官方網站下載JDK &lt;a href=&#34;https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&#34;&gt;https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&lt;/a&gt;
安裝很簡單，無腦下一步操作就行了，這裡不再贅述&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;配置JDK環境變數&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;（1）右擊電腦中的「我的電腦」，Win10為「這台電腦」，選擇「屬性」，選擇「進階系統設定」，在新介面中選擇「環境變數」，我們只編輯「系統變數」就可以了
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gdz8ohzbxnj30y10hz435.jpg&#34;&gt;
（2） 點擊「新建」添加變數名為「JAVA_HOME」，變數值為「C:\Program Files\Java\jdk1.8.0_60」，這個值就是你安裝的JDK路徑，你安裝到了哪裡，就用那個地址就行
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gdz8ozylg5j30m20lldi6.jpg&#34;&gt;再新建一個變數名為「CLASSPATH」，變數值為「.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar」的變數，並確定保存，注意值內的「.;」不要漏掉，每一個符號都不能少&lt;/p&gt;
&lt;p&gt;最關鍵的一步來了，找找有沒有叫「path」的變數，大小寫都行，沒有則新建，有則直接點擊「編輯」
如果已經有path這個變數了，那麼裡面一定保存了一些內容，我們不管它，為了更方便編輯，我們把其中的變數值先複製出來&lt;/p&gt;
&lt;p&gt;然後將內容貼上到文字編輯器中，在內容的最前面添加內容「%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;」，結果如下
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gdz8py2u6ij30tm0jl77z.jpg&#34;&gt;
然後再把整個值複製後貼上到之前編輯的變數值中，確定保存。&lt;/p&gt;
&lt;p&gt;回顧一下上面的步驟，其中總共添加了三個值：
JAVA_HOME：C:\Program Files\Java\jdk1.8.0_60
CLASSPATH：.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
PATH：%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;&lt;/p&gt;
&lt;p&gt;下面是驗證安裝是否成功&lt;/p&gt;
&lt;p&gt;Win+R打開「執行」，輸入cmd後打開命令列
輸入「java」，正常會顯示一大堆的操作提示
輸入「java -version」，正常會顯示你安裝的java版本號資訊
輸入「javac」，正常會顯示javac的一些用法&lt;/p&gt;
&lt;p&gt;完結撒花！&lt;/p&gt;</description>
    </item>
    <item>
      <title>支付寶當面付對接</title>
      <link>https://en.moejue.cn/zh-hant/posts/107/</link>
      <pubDate>Sat, 04 Apr 2020 02:35:18 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/107/</guid>
      <description>&lt;p&gt;當面付顧名思義，面對面付款，幫助商家在線下消費場景下實現快速收款；當面付產品支援條碼支付和掃碼支付兩種付款方式。
我們這裡對接的就是掃碼支付
掃碼支付，指用戶打開支付寶錢包中的「掃一掃」功能，掃描商家展示在某收銀場景下的二維碼並進行支付的模式。該模式適用於線下實體店支付、面對面支付等場景。業務流程如下圖所示：
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwmfk760j30kf071dfz.jpg&#34;&gt;
由於當面付的簽約非常簡單，允許個體工商戶/個人商戶簽約。所以該方式也被大量用於線上的掃碼支付，由於該方式違反了支付寶的相關條款，有一定風險，咱作為技術交流，暫且先拋開這個問題。&lt;/p&gt;
&lt;p&gt;作為技術對接，即使你沒有簽約當面付產品，也是可以進行開發的。
支付能力直接涉及到交易與資金，為了方便開放者調試支付能力，開放平台已經準備好沙箱環境，包括沙箱環境帳號和沙箱版支付寶錢包，這樣開發者就可以在沙箱環境調試了。點擊了解&lt;a href=&#34;https://docs.open.alipay.com/200/105311&#34;&gt;如何接入沙箱&lt;/a&gt;並&lt;a href=&#34;https://openhome.alipay.com/platform/appDaily.htm&#34;&gt;接入沙箱環境&lt;/a&gt;。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwn0aa2ej30sq0ptwi3.jpg&#34;&gt;
所以我這邊開發使用的是沙箱環境，畢竟裡面好多錢，隨便用。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwlx66oxj30cn0qo0tj.jpg&#34;&gt;
首先先下載相應的開發語言的sdk 下載：https://docs.open.alipay.com/194/105201/
掃碼支付文檔：https://docs.open.alipay.com/194/106078/&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置密鑰&lt;/strong&gt;
為了保證交易雙方（商戶和支付寶）的身份和數據安全，開發者在調用接口前，需要配置雙方密鑰，對交易數據進行雙方校驗。
下載&lt;a href=&#34;https://docs.open.alipay.com/291/105971&#34;&gt;支付寶開放平台開發助手&lt;/a&gt;進行密鑰生成。
生成密鑰後，開發者需要在開放平台開發者中心進行密鑰配置，配置完成後可以獲取支付寶公鑰
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwnhq0ztj30u00lo0y6.jpg&#34;&gt;
&lt;strong&gt;設計接入&lt;/strong&gt;
由於我這邊的設計不需要用到輪詢(後面會說)，所以沒有加上
以下是我業務中的相關代碼&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pay&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;request&lt;/span&gt;()&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;isPost&lt;/span&gt;()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (必填) 商户网站订单系统中唯一订单号，64个字符以内，只能包含字母、数字、下划线，
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 需保证商户系统端不能重复，建议通过数据库sequence生成，
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $uid &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Session&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;get&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;sq.uid&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $outTradeNo &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;order\_num&lt;/span&gt;() &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; $uid;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (必填) 订单标题，粗略描述用户的支付目的。如“xxx品牌xxx门店当面付扫码消费”
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $subject &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;聚合平台用户积分充值&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (必填) 订单总金额，单位为元，不能超过1亿元
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $totalAmount &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;input&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;post.pay\_money/f&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;($totalAmount &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;最低充值金額1元&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;($totalAmount &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9999999&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;充值最大金額不能超過9999999元&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (不推荐使用) 订单可打折金额，可以配合商家平台配置折扣活动，如果订单部分商品参与打折，可以将部分商品总价填写至此字段，默认全部商品可打折
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 如果该值未传入,但传入了【订单总金额】,【不可打折金额】 则该值默认为【订单总金额】- 【不可打折金额】
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;//String discountableAmount = &amp;#34;1.00&amp;#34;; //
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (可选) 订单不可打折金额，可以配合商家平台配置折扣活动，如果酒水不参与打折，则将对应金额填写至此字段
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $undiscountableAmount = &amp;#34;0.01&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 卖家支付宝账号ID，用于支持一个签约账号下支持打款到不同的收款账号，(打款到sellerId对应的支付宝账号)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 如果该字段为空，则默认为与支付宝签约的商户的PID，也就是appid对应的PID
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;//$sellerId = &amp;#34;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 订单描述，可以对交易或商品进行一个详细地描述，比如填写&amp;#34;购买商品2件共15.00元&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $body &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;聚合平台用戶積分儲值&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; $totalAmount &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;元&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;//商户操作员编号，添加此参数可以为商户操作员做销售统计
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $operatorId = &amp;#34;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// (可选) 商户门店编号，通过门店号和商家后台可以配置精准到门店的折扣信息，详询支付宝技术支持
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $storeId = &amp;#34;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 支付宝的店铺编号
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $alipayStoreId= &amp;#34;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 业务扩展参数，目前可添加由支付宝分配的系统商编号(通过setSysServiceProviderId方法)，系统商开发使用,详情请咨询支付宝技术支持
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $providerId = &amp;#34;&amp;#34;; //系统商pid,作为系统商返佣数据提取的依据
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $extendParams = new ExtendParams();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $extendParams-&amp;gt;setSysServiceProviderId($providerId);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $extendParamsArr = $extendParams-&amp;gt;getExtendParams();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 支付超时，线下扫码交易定义为5分钟
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $timeExpress &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;5m&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 商品明细列表，需填写购买商品详细信息，
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goodsDetailList = array();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// // 创建一个商品信息，参数含义分别为商品id（使用国标）、名称、单价（单位为分）、数量，如果需要添加商品类别，详见GoodsDetail
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1 = new GoodsDetail();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1-&amp;gt;setGoodsId(&amp;#34;apple-01&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1-&amp;gt;setGoodsName(&amp;#34;iphone&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1-&amp;gt;setPrice(3000);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1-&amp;gt;setQuantity(1);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// //得到商品1明细数组
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods1Arr = $goods1-&amp;gt;getGoodsDetail();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// // 继续创建并添加第一条商品信息，用户购买的产品为“xx牙刷”，单价为5.05元，购买了两件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2 = new GoodsDetail();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2-&amp;gt;setGoodsId(&amp;#34;apple-02&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2-&amp;gt;setGoodsName(&amp;#34;ipad&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2-&amp;gt;setPrice(1000);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2-&amp;gt;setQuantity(1);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// //得到商品1明细数组
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goods2Arr = $goods2-&amp;gt;getGoodsDetail();
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $goodsDetailList = array($goods1Arr,$goods2Arr);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;//第三方应用授权令牌,商户授权系统商开发模式下使用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $appAuthToken &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;;&lt;span style=&#34;color:#75715e&#34;&gt;//根据真实值填写
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 创建请求builder，设置请求参数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            $qrPayRequestBuilder &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;AlipayTradePrecreateContentBuilder&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setOutTradeNo&lt;/span&gt;($outTradeNo);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setTotalAmount&lt;/span&gt;($totalAmount);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setTimeExpress&lt;/span&gt;($timeExpress);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setSubject&lt;/span&gt;($subject);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setBody&lt;/span&gt;($body);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setUndiscountableAmount($undiscountableAmount);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setExtendParams($extendParamsArr);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setGoodsDetailList($goodsDetailList);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setStoreId($storeId);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setOperatorId($operatorId);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// $qrPayRequestBuilder-&amp;gt;setAlipayStoreId($alipayStoreId);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayRequestBuilder&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;setAppAuthToken&lt;/span&gt;($appAuthToken);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;// 调用qrPay方法获取当面付应答
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ROOT\_PATH&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;extend/f2fpay/config/config.php&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPay &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;AlipayTradeService&lt;/span&gt;($config);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            $qrPayResult &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $qrPay&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;qrPay&lt;/span&gt;($qrPayRequestBuilder);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;//  根据状态值进行业务处理
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;switch&lt;/span&gt; ($qrPayResult&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;getTradeStatus&lt;/span&gt;()){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SUCCESS&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    $response &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $qrPayResult&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;getResponse&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#a6e22e&#34;&gt;Db&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;order&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;insert&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;uid&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $uid,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pay\_id&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $outTradeNo,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;money&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $totalAmount,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;creat\_time&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;(),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;subject&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $subject
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;支付寶創建訂單二維碼成功!!!&amp;#34;&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;data&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;qr\_code&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $response&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;qr\_code&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                        &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;outTradeNo&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $outTradeNo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;]&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// $qrcode = $qrPay-&amp;gt;create\_erweima($response-&amp;gt;qr\_code);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// echo $qrcode;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// print\_r($response);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;FAILED&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;支付寶創建訂單二維碼失敗!!!&amp;#34;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// if(!empty($qrPayResult-&amp;gt;getResponse())){
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;//     print\_r($qrPayResult-&amp;gt;getResponse());
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;UNKNOWN&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;系統異常，狀態未知!!!&amp;#34;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// echo &amp;#34;系統異常，狀態未知!!!&amp;#34;.&amp;#34;&amp;lt;br&amp;gt;--------------------------&amp;lt;br&amp;gt;&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// if(!empty($qrPayResult-&amp;gt;getResponse())){
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;//     print\_r($qrPayResult-&amp;gt;getResponse());
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#75715e&#34;&gt;// }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;default&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;status&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;msg&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;不支持的返回狀態，創建訂單二維碼返回異常!!!&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; ;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上就是當面付預下單代碼
關於這個SDK，我非常有必要吐槽一下，哪個傢伙寫的demo，還在PHP例子裡引入了個lotusphp框架，一大堆沒有用的東西，完全沒有考慮我們開發者能不能接受得了。
我也是花了一點時間，把SDK給精簡了一下，只拿出我需要的部分，放入了我自己的框架中，加上了namespace，自動載入。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwodh05dj30af0egdho.jpg&#34;&gt;
掃碼支付有一個獨有的功能&amp;mdash;-異步通知
這個也正是線上支付最為需要的功能
當收銀台調用預下單請求 API 生成二維碼展示給用戶後，用戶通過手機掃描二維碼進行支付，支付寶會將該筆訂單的變更信息，沿著商戶調用預下單請求時所傳入的異步通知地址 notify_url，通過 POST 請求的形式將支付結果作為參數通知到商戶系統。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gciwouog84j30o10cu768.jpg&#34;&gt;
記住這個異步通知地址需要在應用那設置一下。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ESP8266 串列埠WiFi模組 - WiFi殺手</title>
      <link>https://en.moejue.cn/zh-hant/posts/105/</link>
      <pubDate>Mon, 03 Feb 2020 06:59:55 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/105/</guid>
      <description>&lt;p&gt;前陣子買了個ESP8266，準備拿來玩玩。實際閒置數月，然後就拖到了2020年
ESP8266是一個WiFi物聯網模組，實際應用很廣，功能簡單來講就是：從wifi接收到數據，序列埠輸出；從序列埠接收數據，wifi輸出數據。&lt;/p&gt;
&lt;p&gt;這玩意技術成熟，成本低廉，所以售價也就十幾塊錢的事
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjav59u52j30p90alq42.jpg&#34;&gt;
開箱 我這裡買的還是帶OLED液晶螢幕的套裝（給以後玩好玩的東西準備）
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjb22mijhj310a0r741n.jpg&#34;&gt;
最經典的應該就是WiFi殺手了。所以咱就先刷一個WiFi殺手的韌體玩玩
韌體：https://github.com/samdenty/Wi-PWN?wi-pwn=7.0
原理是透過發送取消認證報文讓客戶端以為路由器需要讓自己斷開連接從而斷開wifi，偽造路由器向客戶端發送取消認證報文，使客戶端主動斷開wifi連接。並且支援自訂熱點偽造（批量生成假Wi-Fi訊號）。&lt;/p&gt;
&lt;p&gt;使用能數據傳輸的數據線連接電腦，桌上型電腦盡量插到後面的埠去
插上後，Windows系統的電腦會自動安裝驅動程式，如下圖所示，記住這個COM
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjb5v538uj308i0250st.jpg&#34;&gt;
還需要安裝ch341ser驅動程式，USB轉序列埠CH341/CH340的WINDOWS驅動程式安裝包。按提示安裝即可。這個需要另外下載&lt;/p&gt;
&lt;p&gt;韌體燒錄
我這裡使用的是NodeMcu FIRMWARE PROGRAMMER燒錄工具
1、operation 這裡的com埠選擇之前看到的那一個。或者在裝置管理員中看你ESP8266開發板是插在哪個埠
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjbx2zsdgj30fw099q4f.jpg&#34;&gt;
2、config選擇你的韌體位址，其他預設不動
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjbw32lcdj30fw099myz.jpg&#34;&gt;
3、Advanced - Baudrate 這個鮑率看你開發板背面寫的
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjbw7qovhj30fw099dhg.jpg&#34;&gt;
如圖所示，圈出來的那塊
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjc12jibpj30u4145n0l.jpg&#34;&gt;
配置好後點擊 Flash(F)鍵開始燒錄，這個過程可能有點久，慢慢等就是了&lt;/p&gt;
&lt;p&gt;燒錄完成後，插拔一次，燒錄成功後應該就會出現一個名為 wi-pwn 的一個公開WiFi
連接後瀏覽器打開這個後台，http://192.168.4.1/ 按引導操作即可。
我這裡演示一下批量偽造WiFi，點擊Beacom開始工作
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjcar7sraj317j0kf106.jpg&#34;&gt;
工作狀態，運行中，藍色指示燈閃爍常亮
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjcavnorvj30ys1aegps.jpg&#34;&gt;
我不知道手機為什麼搜尋半天也就幾個
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gbjccbz1u2j30lp19vzm7.jpg&#34;&gt;
還有很多功能我就不一一試了
總結：沒什麼好總結的，我也是第一次玩，把我玩的整個過程記錄一下，分享經驗。
這次用的是別人寫好的韌體，下次就輪到我自己寫個了&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;..待&lt;/p&gt;</description>
    </item>
    <item>
      <title>一款美翻了的阿里圖床程式</title>
      <link>https://en.moejue.cn/zh-hant/posts/104/</link>
      <pubDate>Sun, 12 Jan 2020 08:42:16 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/104/</guid>
      <description>&lt;p&gt;拖延一時爽，一直拖延一直爽，一不經意間又拖延了一個月，就連元旦都沒有出來露個面，說來慚愧。
作為補償，趁著今天週末，我來發佈一個阿里圖床。&lt;/p&gt;
&lt;p&gt;之前的程式好多小夥伴都說難以安裝，這次的阿里圖床就很簡單了，直接上傳到你的伺服器訪問就能使用了，一點都不需要配置，就是這麼簡單。(真的不是偷懶什麼都沒寫)
瞧瞧介面，是不是很美。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gatvrtj7qwj30g00ohtdt.jpg&#34;&gt;
因為比較簡單，所以暫時沒有演示地址。如果有搭建好的小夥伴可以在下方評論出自己的圖床地址給其他小夥伴參考參考
&lt;a href=&#34;https://github.com/iAJue/Alibaba_pic&#34;&gt;專案地址&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這兩天換上了新logo，也很漂亮的不是嗎（抓著公司ps大佬幫忙做的）
&lt;a href=&#34;https://img.52ecy.cn&#34;&gt;幻想領域&lt;/a&gt;圖床也開放驗證碼了，大家不要上傳不好的圖片喔&lt;/p&gt;
&lt;p&gt;最後
雖說遲是遲到了，但我還是要說一句：祝大家新的一年裡快快樂樂！
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1gatw2vof1hj31w32pf7wh.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>小愛音箱萬能遙控器版</title>
      <link>https://en.moejue.cn/zh-hant/posts/102/</link>
      <pubDate>Wed, 20 Nov 2019 14:11:38 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/102/</guid>
      <description>&lt;p&gt;又又又又又雙雙叒叕是個小米，這次要開箱的是一個小米音箱萬能遙控器版，讓傳統家電秒變智能家居
開箱，比想像中的小好多
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pky0ndwj30u0140780.jpg&#34;&gt;
新出的小米小愛音箱HD就很大，在小米之家抱過(〃&amp;rsquo;▽&amp;rsquo;〃)
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkuzx1nj30u0140q6r.jpg&#34;&gt;
包裝清單：主機+電源適配器+數據線+說明書
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkw08xhj31400u0gpu.jpg&#34;&gt;
下面四周一圈是真洞，剛開始從圖片上看還以為只是圖案
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkvewhhj30u014042u.jpg&#34;&gt;
內部中間是一個類似於錐形的雙面金字塔，通俗講大概就是個陀螺吧
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkxi1poj30u0140adl.jpg&#34;&gt;
麥克風閉鍵(上)，長按10秒恢復出廠設置，音量加減鍵(左右)，暫停/播放鍵，長按可進入配置模式
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkwkjapj30u014042x.jpg&#34;&gt;
隨後需要下載小愛音箱APP進行一系列配置
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkx5wf6j30cn0qojrn.jpg&#34;&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkumgvtj30cn0qojrl.jpg&#34;&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pktxq7nj30cn0qoaaf.jpg&#34;&gt;
內置QQ音樂，但是不能管理，需要在QQ音樂上管理
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1g93pkub4y6j30cn0qomxu.jpg&#34;&gt;
然後你就能開始玩耍了&lt;/p&gt;
&lt;p&gt;可以對你的小愛同學說“啟動自毀模式”，你會get到新技能 （謹慎！！）&lt;/p&gt;
&lt;p&gt;另外，有一個比較坑爹的設定或者說是BUG，就是連接上藍牙設置後無法聯網了（#黑人問號？？）&lt;/p&gt;</description>
    </item>
    <item>
      <title>熱敏藍牙印表機開發</title>
      <link>https://en.moejue.cn/zh-hant/posts/100/</link>
      <pubDate>Tue, 05 Nov 2019 14:49:50 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/100/</guid>
      <description>&lt;p&gt;最近在做小票打印這塊，項目需求是IOS和安卓兩種都要實現，開始做的時候也是一臉懵，然後網上找了不少資料，踩了一堆坑，看了好多文章，結果還好成了&lt;br&gt;
藍牙打印機一般分為兩種打印模式，票據打印、標籤打印&lt;/p&gt;
&lt;p&gt;公司買的渣渣打印機連開發文檔都沒有，害我走了不少坑，讓我開發買的時候也不諮詢諮詢我&lt;br&gt;
目前微信小程序連接藍牙打印機 wx.createBLEConnection 測試在IOS設備上沒有問題，在部分安卓手機上會出現異常（表現為，連接是會彈出系統配對框，不管點取消還是輸入配對碼後點確定，都會立馬斷開連接。如果不輸入也不取消則會在30秒以內自動斷開藍牙打印機）&lt;/p&gt;
&lt;p&gt;現在採用的方式是各給安卓和IOS寫一套藍牙打印的命令&lt;br&gt;
&lt;strong&gt;IOS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;// ====================藍牙操作==================  //初始化藍牙模組
openBluetoothAdapter() {&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (app.sysinfo.provider == 1) {
    // 開啟藍牙
    app.onBluetooth()
    setTimeout(() =&amp;gt; {
        this.android\_search()
    }, 2000)
    return false;
}


this.closeBluetoothAdapter()
uni.openBluetoothAdapter({
    success: (res) =&amp;gt; {
        console.log(&amp;quot;初始化藍牙模組: &amp;quot; + JSON.stringify(res));
        this.startBluetoothDevicesDiscovery()
    },
    fail: (res) =&amp;gt; {
        if (res.errCode === 10001) {
            uni.onBluetoothAdapterStateChange((res) =&amp;gt; {
                console.log(&#39;監聽藍牙適配器狀態變化事件&#39;, res)
                if (res.available == false) {
                    app.global\_printing = {}
                    this.connected = false
                    this.chs = \[\]
                    this.canWrite = false
                }
                if (res.available) {
                    this.startBluetoothDevicesDiscovery()
                }
            })
        }
        if (res.errCode) {
            app.alert(&#39;初始化藍牙失敗，錯誤碼：&#39; + res.errCode)
            return false;
        }
        app.alert(res.errMsg)
    }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;},&lt;/p&gt;</description>
    </item>
    <item>
      <title>鴿主帶著新版三合一回來了</title>
      <link>https://en.moejue.cn/zh-hant/posts/15/</link>
      <pubDate>Sun, 04 Aug 2019 01:42:18 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/15/</guid>
      <description>&lt;p&gt;自從5.20表白後，鴿主就一直處於失蹤狀態&amp;hellip;&amp;hellip;.&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1g5nlxy8to3j306o05b75f.jpg&#34;&gt;&lt;br&gt;
時隔不知道多少個月，三合一它竟然又更新了，兩個月前在群裡立下的flag，今天我把它給圓了，不要問我中間兩個月幹嘛去了-.- （忙著參加大型鴿子聚會）&lt;/p&gt;
&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;
&lt;p&gt;由於網路識別經常掛掉，非常不穩定，一直有小夥伴在跟我反饋，所以這次特意更新了本地識別。&lt;br&gt;
推薦1G記憶體以上的機子安裝，推薦配置2核2G，最佳配置16核32G [#手動滑稽]&lt;/p&gt;
&lt;h4 id=&#34;v20&#34;&gt;v2.0&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;新增本地二維碼識別與生成&lt;/li&gt;
&lt;li&gt;移除網路識別介面&lt;/li&gt;
&lt;li&gt;修復已知BUG&lt;/li&gt;
&lt;li&gt;其他一些細節優化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;詳細說明和安裝教程可&lt;a href=&#34;https://www.52ecy.cn/post-88.html&#34;&gt;點擊這裡&lt;/a&gt;查看上個版本&lt;br&gt;
新版網站均保留了舊版本資料，不影響之前使用者使用，並且與贊助版資料同步&lt;/p&gt;
&lt;h4 id=&#34;贊助版&#34;&gt;贊助版&lt;/h4&gt;
&lt;p&gt;由於舊版本盜版氾濫，新版三合一增設了贊助版。&lt;br&gt;
演示網站：&lt;a href=&#34;https://qr.moeins.cn/&#34;&gt;https://qr.moeins.cn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;贊助版主要特色：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;優化二維碼的識別與生成，大大提高識別準確率，更快的識別速度，不佔CUP與記憶體，更穩定&lt;/li&gt;
&lt;li&gt;新增21套三合一生成模板，並且可支援無限擴展，添加教程在文末&lt;/li&gt;
&lt;li&gt;新增對外的API介面，不再針對該程式使用，任何程式都可呼叫&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如何獲得：&lt;br&gt;
&lt;a href=&#34;https://pay.52ecy.cn/?cid=23&#34;&gt;點擊這裡&lt;/a&gt;贊助項目18.88元以上即可獲得收款碼三合一的贊助專享版，你值得擁有！&lt;/p&gt;
&lt;p&gt;關於贊助版的一些小小說明（之前都是沒有特意拿出來說明 ）&lt;br&gt;
到目前為止，我所有的贊助版項目均不綁定網域，不曾加密，可自由擴展，支援二次開發，且贊助金額都偏低，即可獲得。所以還請有贊助的小夥伴們不要隨意分享贊助得到的原始碼，這是對作者的尊重也是對自己權益的保障。由於不存在買賣關係，如無重大BUG作者將不定期更新或無限期拖更。如遇小問題，在作者空閒之餘願意指導或幫助修改，但是要新增大功能這種情況下我有權拒絕幫忙或需另外付費。&lt;/p&gt;
&lt;h4 id=&#34;贊助版模板擴展教程&#34;&gt;贊助版模板擴展教程&lt;/h4&gt;
&lt;p&gt;模板推薦尺寸為：900*1200&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;將模板圖片放至&lt;code&gt;/public/static/images/template/&lt;/code&gt;模板目錄，注意請不要使用中文名，且只支援jpg副檔名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在根目錄的&lt;code&gt;config.php&lt;/code&gt;中 qr_template 項下配置相關資料，格式如下：&lt;/p&gt;
&lt;p&gt;&amp;lsquo;001&amp;rsquo; =&amp;gt; [
&amp;rsquo;name&amp;rsquo; =&amp;gt; &amp;lsquo;預設模板&amp;rsquo;,
&amp;lsquo;data&amp;rsquo; =&amp;gt; [
150,200
],
&amp;rsquo;title&amp;rsquo; =&amp;gt; true,
&amp;lsquo;size&amp;rsquo; =&amp;gt; 20
]&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;參數說明&#34;&gt;參數說明&lt;/h4&gt;
&lt;p&gt;名稱&lt;/p&gt;
&lt;p&gt;變數名&lt;/p&gt;
&lt;p&gt;必填&lt;/p&gt;
&lt;p&gt;類型&lt;/p&gt;
&lt;p&gt;範例值&lt;/p&gt;
&lt;p&gt;描述&lt;/p&gt;
&lt;p&gt;模板ID&lt;/p&gt;
&lt;p&gt;無&lt;/p&gt;
&lt;p&gt;是&lt;/p&gt;
&lt;p&gt;int&lt;/p&gt;
&lt;p&gt;001&lt;/p&gt;
&lt;p&gt;模板的檔案名，推薦數字，不可重複&lt;/p&gt;
&lt;p&gt;別名&lt;/p&gt;
&lt;p&gt;name&lt;/p&gt;
&lt;p&gt;是&lt;/p&gt;
&lt;p&gt;string&lt;/p&gt;
&lt;p&gt;預設模板&lt;/p&gt;
&lt;p&gt;在前台顯示的模板別名&lt;/p&gt;
&lt;p&gt;X,Y&lt;/p&gt;
&lt;p&gt;data&lt;/p&gt;
&lt;p&gt;是&lt;/p&gt;
&lt;p&gt;array&lt;/p&gt;
&lt;p&gt;[150,200]&lt;/p&gt;
&lt;p&gt;二維碼生成的左上角的起始X（橫坐標）,Y（縱坐標）坐標，不可為負數且小於模板尺寸&lt;/p&gt;
&lt;p&gt;模板標題&lt;/p&gt;</description>
    </item>
    <item>
      <title>小程序架構</title>
      <link>https://en.moejue.cn/zh-hant/posts/92/</link>
      <pubDate>Fri, 17 May 2019 06:59:47 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/92/</guid>
      <description>&lt;p&gt;不知道大家們寫小程序是怎麼個寫法的，前幾個月在寫微信小程序，自己整理的一種架構，或者叫框架
微信原生的架構是這樣子&lt;/p&gt;
&lt;p&gt;├── app.js
├── app.json
├── app.wxss
├── pages
│   │── index
│   │   ├── index.wxml
│   │   ├── index.js
│   │   ├── index.json
│   │   └── index.wxss
│   └── logs
│       ├── logs.wxml
│       └── logs.js
└── utils&lt;/p&gt;
&lt;p&gt;為什麼不用微信原生的寫法呢？
小程序就類似手機APP，都會有一個tabBar欄對吧，微信官方的tabBar欄是在app.json中進行的全局配置。做一般的開發是沒有任何問題的，但涉及到一個複雜的tabBar欄時，使用官方原生的就無法實現，也無法動態載入，比如某影片app中間的拍照錄影功能
這意味著，我們不能使用官方給我們提供的tabBar欄，需要我們自己寫
最開始我的做法還是保持原生的結構，只是自己寫tabBar欄，所以頁面程式碼都寫在一個文件中，預設顯示第一屏，其他的都隱藏起來，切換頁面的時候再把相應的頁面顯示，其他的隱藏起來，並且動態渲染資料上去。但是有個問題是，如果是小專案倒沒什麼大問題，但是如果是大專案程式碼量非常龐大，都寫在一個文件中，後期難以維護，所以這個方法最後被pass掉&lt;/p&gt;
&lt;p&gt;再後來將切換頁面的方式改為跳轉（wx.switchTab等），把不同頁面的程式碼放到了不同的文件，但是還有一個問題，切換也會閃爍，每次切換頁面就等於重新打開一個網頁一樣，tabBar都被重新渲染，所以會閃爍。pass&lt;/p&gt;
&lt;p&gt;由此就有了現在的全新架構方式：
將/pages/index/下的文件全部定義為入口文件，js入口，css入口，視圖入口，不同頁面的文件還是放到不同的位置去，為了好管理，新建了一個template的資料夾，用於放不同頁面間的程式碼，結構和官方的單頁面結構是一樣的
根目錄下的app.js用於存放全域函數，其他頁面呼叫只需getApp()即可
js的入口文件&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;app&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;getApp&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;require&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../../template/index/index.js&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;types&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;require&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../../template/types/types.js&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Page&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;data&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;active&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;types&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;course&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;onLoad&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;options&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;setData&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getData&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        })
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 底部nav切换
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;tabbar&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_onChange&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;event&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;data&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;types&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;course&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        };
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;console&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;log&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;event&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;switch&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;event&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;detail&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;index&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getData&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;types&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;types&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getData&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;course&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getData&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;index&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_js&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getData&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;data&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;console&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;log&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;setData&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;data&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;show&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Global&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_Data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        })
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;wxml入口文件&lt;/p&gt;</description>
    </item>
    <item>
      <title>一些常見功能的查詢sql</title>
      <link>https://en.moejue.cn/zh-hant/posts/90/</link>
      <pubDate>Wed, 10 Apr 2019 09:33:11 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/90/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1g1xv7hy779j30d6097glr.jpg&#34;&gt; &lt;strong&gt;1、情境：查詢一位選手的排名及距離上一名差多少票&lt;/strong&gt;
方法二（去重排序查詢比自己少的數量）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$temp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DB&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;fetch_first&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT distinct total+jewel_vote+forge_vote  ,COUNT(*)+1 AS RANK FROM &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DB&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;table&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;vote_competition&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; WHERE total+jewel_vote+forge_vote&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; $competition[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;all&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; and aid=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$aid&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; ORDER by forge_vote desc&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$rank &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $temp[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;RANK&amp;#39;&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 無法直接查詢到上一名選手票數
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; ($temp[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;total+jewel_vote+forge_vote&amp;#39;&lt;/span&gt;]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;// 這裡查詢出來的是和第一名選手相差的票數
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;    $up &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $temp[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;total+jewel_vote+forge_vote&amp;#39;&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;$competition[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;all&amp;#39;&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;方法一（定義變數累加排序）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$temp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DB&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;fetch_all&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT a.cid,a.total,a.forge_vote,a.jewel_vote,(@rowNum:=@rowNum+1) AS rank FROM pre_vote_competition AS a, (SELECT (@rowNum :=0) ) b WHERE aid=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{&lt;/span&gt;$aid&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; ORDER BY (a.total+a.forge_vote+a.jewel_vote) DESC &amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt; ($temp &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; $key &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; $value) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; ($value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cid&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; $cid) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;// 當前自己的排名
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt; $rank &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;rank&amp;#39;&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; ($up) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;             $up &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $up &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; ($value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;total&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;  $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;forge_vote&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;jewel_vote&amp;#39;&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 和上一名選手相差的票數
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;    $up &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;total&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;  $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;forge_vote&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; $value[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;jewel_vote&amp;#39;&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2、情境：查詢一篇文章的上一篇和下一篇，支援斷號&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>微信JSAPI支付</title>
      <link>https://en.moejue.cn/zh-hant/posts/89/</link>
      <pubDate>Sat, 30 Mar 2019 09:30:21 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/89/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1g1l3k211blj30ia04x74e.jpg&#34;&gt; 前陣子一直在做微信相關的業務，雖說不是什麼新技術，但之前一直沒有機會接觸到，然後踩了些坑，抽空整理記錄下。
微信支付一共分為7種，分別是：付款碼支付、JSAPI支付、Native支付、APP支付、H5支付、小程序支付、人臉支付。
此次業務中使用到的是微信JSAPI支付：用戶透過微信掃碼、關注公眾號等方式進入商家H5頁面，並在&lt;strong&gt;微信內&lt;/strong&gt;呼叫 JSSDK完成支付&lt;/p&gt;
&lt;p&gt;文件：&lt;a href=&#34;https://pay.weixin.qq.com/wiki/doc/api/index.html&#34;&gt;https://pay.weixin.qq.com/wiki/doc/api/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SDK：[https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1&lt;/p&gt;
&lt;p&gt;](&lt;a href=&#34;https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1%29JSAPI&#34;&gt;https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1)JSAPI&lt;/a&gt;支付需要在微信中的瀏覽器打開才能喚起微信支付，效果如下圖
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1g1l36yn1sej30p91hc40b.jpg&#34;&gt;
附上介面程式碼
程式碼中使用了模板引擎
html：&lt;/p&gt;
&lt;div class=&#34;am-modal-bd&#34;&gt;
	&lt;img src=&#34;{$competition\[&#39;avatar&#39;\]}&#34; alt=&#34;&#34;&gt;&lt;br&gt;
	&lt;span style=&#34;font-size: 13px;color: #72c6ef&#34;&gt;{$competition\[&#39;username&#39;\]}&lt;/span&gt;&lt;br&gt;
	&lt;span id=&#34;tips&#34; style=&#34;font-size: 13px&#34;&gt;&lt;/span&gt;
  &lt;ul class=&#34;ul\_box&#34;&gt;
	&lt;li&gt;
		&lt;div&gt;&lt;/div&gt;
		&lt;div class=&#34;label\_box&#34;&gt;
			&lt;label&gt;
				&lt;input type=&#34;radio&#34; name=&#34;price&#34; value=&#34;{$prices\[0\]}&#34; checked=&#34;&#34;&gt;
				&lt;div class=&#34;active&#34;&gt;&lt;span class=&#34;am-icon-diamond&#34;&gt;&lt;/span&gt; {$prices\[0\]}鑽&lt;/div&gt;
			&lt;/label&gt;
			&lt;label&gt;
				&lt;input type=&#34;radio&#34; name=&#34;price&#34; value=&#34;{$prices\[1\]}&#34;&gt;
				&lt;div&gt;&lt;span class=&#34;am-icon-diamond&#34;&gt;&lt;/span&gt; {$prices\[1\]}鑽&lt;/div&gt;
			&lt;/label&gt;
			&lt;label&gt;
				&lt;input type=&#34;radio&#34; name=&#34;price&#34; value=&#34;{$prices\[2\]}&#34;&gt;
				&lt;div&gt;&lt;span class=&#34;am-icon-diamond&#34;&gt;&lt;/span&gt; {$prices\[2\]}鑽&lt;/div&gt;
			&lt;/label&gt;
		&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
		&lt;div&gt;&lt;/div&gt;
		&lt;div class=&#34;label\_box&#34;&gt;
			&lt;label&gt;
				&lt;input type=&#34;radio&#34; name=&#34;price&#34; value=&#34;{$prices\[3\]}&#34;&gt;
				&lt;div&gt;&lt;span class=&#34;am-icon-diamond&#34;&gt;&lt;/span&gt; {$prices\[3\]}鑽&lt;/div&gt;
			&lt;/label&gt;
			&lt;label&gt;
				&lt;input type=&#34;radio&#34; name=&#34;price&#34; value=&#34;{$prices\[4\]}&#34;&gt;
				&lt;div&gt;&lt;span class=&#34;am-icon-diamond&#34;&gt;&lt;/span&gt; {$prices\[4\]}鑽&lt;/div&gt;
			&lt;/label&gt;
			&lt;label&gt;
				&lt;input type=&#34;number&#34; name=&#34;price&#34; id=&#34;price&#34; class=&#34;input&#34; placeholder=&#34;自定義&#34;&gt;
			&lt;/label&gt;
		&lt;/div&gt;
	&lt;/li&gt;
  &lt;/ul&gt;
  &lt;span style=&#34;font-size: 13px&#34;&gt;註：1鑽=1元，1鑽={$activity\[&#39;offset&#39;\]}票&lt;/span&gt;&lt;br&gt;
  &lt;button type=&#34;button&#34; class=&#34;am-btn am-btn-primary  am-radius&#34; onclick=&#34;callpay()&#34; style=&#34;margin-top: 5px;&#34;&gt;立即微信支付&lt;/button&gt;
&lt;/div&gt;
&lt;p&gt;JavaScript：&lt;/p&gt;
&lt;p&gt;// 投票
var offset = {$activity[&amp;lsquo;offset&amp;rsquo;]};
$(&amp;rsquo;#tips&amp;rsquo;).html(&amp;lsquo;正在給{$competition[&amp;lsquo;code&amp;rsquo;]}號贈送{$prices[0]}鑽=&amp;rsquo;+({$prices[0]}*offset)+&amp;lsquo;票&amp;rsquo;);
$(&amp;rsquo;#vote&amp;rsquo;).click(function(){
$.post(&amp;rsquo;/index/index/detailed.html?cid={$cid}&amp;amp;aid={$aid}&amp;rsquo;,{
formhash :&amp;rsquo;{FORMHASH}&amp;rsquo;,
submit:&amp;lsquo;1&amp;rsquo;,
type:1,
openid:&amp;rsquo;{$_G[&amp;lsquo;member&amp;rsquo;][&amp;lsquo;openid&amp;rsquo;]}&amp;rsquo;
},function(res){
alert(res.msg);
if (res.code == 0) {
$(&amp;rsquo;.box-1 span&amp;rsquo;).text(res.data.all);
$(&amp;rsquo;.box-2 span&amp;rsquo;).text(res.data.rank);
$(&amp;rsquo;.box-3 span&amp;rsquo;).text(res.data.up + &amp;lsquo;票&amp;rsquo;);
}
});
})
/* jQuery物件級別外掛程式擴展 */
$.fn.extend({
/* 單選框 */
hlRadio:function () {
var radioEl=$(this);
radioEl.click(function () {
var price = 0;
price = $(&amp;lsquo;input:radio:checked&amp;rsquo;).val();
$(&amp;rsquo;#price&amp;rsquo;).val(&amp;rsquo;&amp;rsquo;);
$(&amp;rsquo;#tips&amp;rsquo;).html(&amp;lsquo;正在給{$competition[&amp;lsquo;code&amp;rsquo;]}號贈送&amp;rsquo;+price+&amp;lsquo;鑽=&amp;rsquo;+(price*offset)+&amp;lsquo;票&amp;rsquo;);
radioEl.siblings(&amp;ldquo;div&amp;rdquo;).removeClass(&amp;ldquo;active&amp;rdquo;);
$(this).siblings(&amp;ldquo;div&amp;rdquo;).addClass(&amp;ldquo;active&amp;rdquo;);
});
},
});
$(&amp;ldquo;input[name=&amp;lsquo;price&amp;rsquo;]&amp;rdquo;).hlRadio();
$(&amp;rsquo;#price&amp;rsquo;).bind(&amp;lsquo;input propertychange&amp;rsquo;, function(){
var price = 0;
price = $(&amp;rsquo;#price&amp;rsquo;).val();
$(&amp;rsquo;#tips&amp;rsquo;).html(&amp;lsquo;正在給{$competition[&amp;lsquo;code&amp;rsquo;]}號贈送&amp;rsquo;+price+&amp;lsquo;鑽=&amp;rsquo;+(price*offset)+&amp;lsquo;票&amp;rsquo;);
})&lt;/p&gt;</description>
    </item>
    <item>
      <title>我以為我會暴富，但是我沒有。</title>
      <link>https://en.moejue.cn/zh-hant/posts/83/</link>
      <pubDate>Wed, 02 Jan 2019 11:05:50 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/83/</guid>
      <description>&lt;p&gt;2018年已經走到盡頭
暴富的願望落空了
更慘的是還要完成一部年度巨作&lt;/p&gt;
&lt;p&gt;——年終總結&lt;/p&gt;
&lt;p&gt;說起來，這世上原本沒有年終總結
自從有了KPI
就有了扯不盡的怨念&lt;/p&gt;
&lt;p&gt;下面是正文&lt;/p&gt;
&lt;p&gt;在 &lt;a href=&#34;https://www.52ecy.cn/post-12.html&#34;&gt;文章歸檔&lt;/a&gt; 這裡可以很清楚地看到所有文章和發布的時間，2018年的每一個月都有發布文章，幾乎每天都會來看看。&lt;/p&gt;
&lt;p&gt;# 回顧&lt;/p&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;1月份寫了第一個自己的部落格系統&lt;/li&gt;
&lt;li&gt;2月份買第一個手(老)辦(婆)&lt;/li&gt;
&lt;li&gt;3月份發布了幻想領域圖床首個版本&lt;/li&gt;
&lt;li&gt;4月份更新了幻想領域圖床正式版、整合了emlog新浪插件&lt;/li&gt;
&lt;li&gt;5月份上線了萌音發卡平台&lt;/li&gt;
&lt;li&gt;6月份修復了許久未管的歌單&lt;/li&gt;
&lt;li&gt;7月份哇，萌音社群來了&lt;/li&gt;
&lt;li&gt;8月份收款碼三合一發布&lt;/li&gt;
&lt;li&gt;9月份萌音影視上線&lt;/li&gt;
&lt;li&gt;10月份過的第三個程式設計師節1024&lt;/li&gt;
&lt;li&gt;11月份買了小米筆記型電腦&amp;amp;萌音雲筆記發布&lt;/li&gt;
&lt;li&gt;12月份去了遠方，唯有二次元不能放棄&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;# 2019&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;2019將會是一個忙碌、學習且成長的一年。年初的展望沒有食言，今年大大小小的專案也是寫了不少，也學到了很多東西，創建了我第一個qq群，交到了一群愛我的小夥伴們。&lt;/p&gt;
&lt;p&gt;今年確實是又雙叒叕忘記準時發部落格，但今年不會再像去年那樣機(無)智(恥)地改時間了，過去的時間畢竟不能再回來了。
這兩個月學習的一些東西都給記到萌音雲筆記上了，沒有往部落格這邊發，有興趣的小夥伴可以去看看。鬼知道我經歷了什麼，以前都是一兩個月孵化出一個專案，現在是一星期整一個出來。這僅僅只是吐槽，並非埋怨。
去年的展望是寫在了敬業福中(去年有來的朋友才會知道)，今年本來還想掛上去的，突然發現原始碼在很遙遠的地方，然後就算了，大不了發篇部落格就好了。
這兩個月也入門了下C、C++、Java、node.js，玩了discuz外掛&amp;amp;模板、百度&amp;amp;微信小程序、公眾號&amp;hellip;&amp;hellip;
2019年繼續加油&amp;hellip;.&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fysiqc2sndj30jf0eodgp.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>萌音影視 - 線上影視應用</title>
      <link>https://en.moejue.cn/zh-hant/posts/75/</link>
      <pubDate>Tue, 25 Sep 2018 07:41:02 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/75/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.52ecy.cn/&#34;&gt;部落格&lt;/a&gt; | &lt;a href=&#34;https://www.moeins.cn/&#34;&gt;演示站&lt;/a&gt; | &lt;a href=&#34;http://shang.qq.com/wpa/qunwpa?idkey=618c7f3214a5c5ed06c9343a395371a8b27318e5190491bf7283fbf7468e35d7&#34;&gt;QQ群&lt;/a&gt; | &lt;a href=&#34;https://github.com/178146582/moeins&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;基於優雅的 Laravel 框架和一點都不妹子的 妹子UI 的線上影視應用&lt;/p&gt;
&lt;h4 id=&#34;作者有話要說&#34;&gt;作者有話要說&lt;/h4&gt;
&lt;p&gt;雖然線上影視網上也是遍地都是，但這並不影響我自個寫一個，這樣以後自己看番也方便，畢竟自己動手才能豐衣足食，又能學習到新的知識，豈不美哉。&lt;/p&gt;
&lt;p&gt;頁面設計參考了部分網站。影視資源均來自網上，如有侵權，請及時聯繫我們。&lt;/p&gt;
&lt;p&gt;讓我們一起拋棄那些ex的60秒廣告吧~&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;無資料庫、無後台模式，僅只有一個設定檔(&lt;code&gt;config/web.php&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;無廣告，支援VIP解析，官方源，速度快，多頻道，多分類&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;待辦事項:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;獨立的頻道首頁&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;電視台直播&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;多解析介面&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;待添加&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;贊助專享版&#34;&gt;贊助專享版&lt;/h4&gt;
&lt;p&gt;另外這是一個雙版本應用，就是它會有兩個不同的版本，贊助版基於普通版的優化而來，在功能和效能上做了很大提升，大大加快運行速度，並且保持優先的更新。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;那麼，問題來了，如何獲得贊助專享版呢？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你可以在 &lt;a href=&#34;https://github.com/178146582/qr#author&#34;&gt;這裡&lt;/a&gt; 或者 &lt;a href=&#34;https://pay.52ecy.cn/&#34;&gt;這裡&lt;/a&gt; 對專案贊助58元以上即可獲得&lt;/p&gt;
&lt;p&gt;當然，如果專案對你有幫助，或者你有需要，都可以選擇贊助我們，哪怕一分也是愛&lt;/p&gt;
&lt;p&gt;我想沒有一個人寫開源專案是為了牟利而寫，畢竟它還沒有去磚廠搬一天磚賺的多。&lt;/p&gt;
&lt;h2 id=&#34;安裝需求&#34;&gt;安裝需求&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;LNMP/AMP With PHP5.6+&lt;/li&gt;
&lt;li&gt;curl、OpenSSL擴展&lt;/li&gt;
&lt;li&gt;Composer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;透過composer安裝主程式&#34;&gt;透過Composer安裝主程式&lt;/h2&gt;
&lt;h4 id=&#34;1-使用composer安裝moeins&#34;&gt;1. 使用composer安裝moeins&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ composer create-project a-jue/moeins 
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#等待安裝依賴庫後，會自動執行安裝腳本
#出現如下提示表示安裝完成

&amp;gt; Illuminate\Foundation\ComposerScripts::postInstall
&amp;gt; php artisan optimize
Generating optimized class loader
The compiled services file has been removed.
&amp;gt; php artisan key:generate
Application key [base64:Hx0I9UUQg7OyIz8lpDYG6Y/gW1uxS760ERdWzGG2jyQ=] set successfully. 
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;2-目錄權限&#34;&gt;2. 目錄權限&lt;/h4&gt;
&lt;p&gt;將&lt;code&gt;public&lt;/code&gt; 子目錄設定為對外公開的web目錄&lt;/p&gt;</description>
    </item>
    <item>
      <title>QQ、支付寶、微信收款碼三合一</title>
      <link>https://en.moejue.cn/zh-hant/posts/73/</link>
      <pubDate>Fri, 24 Aug 2018 06:23:20 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/73/</guid>
      <description>&lt;h2 id=&#34;收款啦&#34;&gt;收款啦&lt;/h2&gt;
&lt;p&gt;收款啦，是一款整合支付寶、微信、QQ收款碼的三合一系統。&lt;/p&gt;
&lt;p&gt;採用 thinkPHP5.0 + MySQL + layui 開發完成&lt;/p&gt;
&lt;p&gt;演示網站：&lt;a href=&#34;https://qr.52ecy.cn&#34;&gt;收款啦&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;專案地址：&lt;a href=&#34;https://github.com/178146582/qr&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;無論是教學還是現成的程式碼，網路上幾乎隨處可見，為什麼我還要自己寫一套呢？&lt;/p&gt;
&lt;p&gt;就是為了體現「套」字，包含上傳二維碼、識別二維碼、生成三合一收款碼，一整套流程服務。&lt;/p&gt;
&lt;p&gt;絕大多數的三合一僅針對個人使用，而收款啦能為多用戶提供三合一服務。&lt;/p&gt;
&lt;p&gt;但是它卻沒有後台，主要原因有兩個：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;無需頻繁查看或修改配置，一次配置，終身使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;作者懶癌發作（也導致沒有安裝嚮導）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果確實需要，之後再說&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;程式碼本身是比較輕量級的，由於使用了框架導致體積增大。&lt;/p&gt;
&lt;p&gt;好吧，本身也沒什麼技術含量，自己也幾乎用不到，寫給有需要的人類吧，順便水水文~~逃(-&lt;/p&gt;
&lt;h2 id=&#34;原理&#34;&gt;原理&lt;/h2&gt;
&lt;p&gt;收款碼三合一，聽起來感覺很神奇，其實原理非常簡單！&lt;/p&gt;
&lt;p&gt;所謂二維碼，其實就是包含了一系列字串的圖片罷了。無論是支付寶還是微信的收款碼，其本質上是一個包含了收款連結的二維碼。所以我們的思路是：檢測如果是支付寶瀏覽頁面，就給出支付寶的付款連結；如果是微信，就給出微信連結……&lt;/p&gt;
&lt;p&gt;然後這裡涉及到一個知識點，&lt;code&gt;User-Agent&lt;/code&gt;，大廠的webview都會攜帶自家的UA資訊，比如說：&lt;/p&gt;
&lt;p&gt;QQ：&lt;code&gt;MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;微信：&lt;code&gt;MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;支付寶：&lt;code&gt;UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;這樣就很輕鬆區分是QQ還是微信還是支付寶掃碼了：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;User-Agent&lt;/code&gt; 含有 QQ/ 為QQ&lt;/p&gt;
&lt;p&gt;&lt;code&gt;User-Agent&lt;/code&gt; 含有 MicroMessenger 為微信&lt;/p&gt;
&lt;p&gt;&lt;code&gt;User-Agent&lt;/code&gt; 含有 AlipayClient 為支付寶&lt;/p&gt;
&lt;p&gt;既然能夠區分每個軟體，那就可以透過自建一個網址，透過二維碼生成掃描這個網址後，判斷瀏覽器的UA，來分發不同的收款碼。&lt;/p&gt;
&lt;p&gt;大致的流程則為：&lt;/p&gt;
&lt;p&gt;客戶端掃碼 -&amp;gt; 伺服器端根據 &lt;code&gt;User-Agent&lt;/code&gt; 判斷客戶端類型 -&amp;gt; 分別返回不同的處理&lt;/p&gt;
&lt;p&gt;另外值得注意的是：&lt;/p&gt;
&lt;p&gt;QQ：https 協定，無法喚醒QQ&lt;/p&gt;
&lt;p&gt;支付寶：https 協定，可直接喚醒支付寶 APP&lt;/p&gt;</description>
    </item>
    <item>
      <title>世界那麼大，讓我帶你去看看 123</title>
      <link>https://en.moejue.cn/zh-hant/posts/70/</link>
      <pubDate>Wed, 01 Aug 2018 06:09:21 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/70/</guid>
      <description>&lt;p&gt;聽說只有聰明人才能看到這句話，密碼在文章標題後面
生命短暫，世界很大。
小飛機助手，它是一款基於S*h·a·d·o·w·s·o·c·k·s的VPN代理軟體助手，它內建多個節點，可用率高達80%，可一鍵翻`越`長`城`防`火`牆，達到科`學`上`網`的目的。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1ftu6v4ddnoj30an07q0u3.jpg&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;先聲明&#34;&gt;&lt;strong&gt;先聲明&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;在某個漆黑風高、風雨交加的夜晚，身為碼農的某部落客，經常需要上網搜尋資料和學習，故國內度娘對英文搜尋欠佳，則需上谷`歌，又故國內大陸地區無法直接訪問谷`歌，則迫於無奈只能掛上梯`子，爬出長`城`防`火`牆&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;該軟體為免費軟體，請勿盜賣！&lt;/li&gt;
&lt;li&gt;該軟體僅用於學習與交流，請不要用於違法用途&lt;/li&gt;
&lt;li&gt;任何人使用該軟體的任何行為均與作者無關，本人有權不承擔任何法律責任！&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1ftu7wpigt9j30go0hngm6.jpg&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;環境&#34;&gt;&lt;strong&gt;環境&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;需要安裝 .NET Framework 4.6.2 和 Microsoft Visual C++ 2015 Redistributable (x86)&lt;/p&gt;
&lt;h4 id=&#34;基本使用&#34;&gt;&lt;strong&gt;基本使用&lt;/strong&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;雙擊小飛機助手運行後將自動釋放內建的 S·h·a·d·o·w·s·o·c·k·s 版本（注意殺軟）&lt;/li&gt;
&lt;li&gt;小飛機助手預設使用的是高可用模式，當然你也可以切換模式，或者選擇你喜歡的節點&lt;/li&gt;
&lt;li&gt;選擇 &lt;code&gt;啟用系統代理&lt;/code&gt; 來啟用系統代理。請禁用瀏覽器裡的代理外掛程式，或把它們設定為使用系統代理。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;伺服器自由切換&#34;&gt;&lt;strong&gt;伺服器自由切換&lt;/strong&gt;&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;負載平衡：隨機選擇伺服器&lt;/li&gt;
&lt;li&gt;高可用：根據延遲和丟包率自動選擇伺服器&lt;/li&gt;
&lt;li&gt;累計丟包率：透過定時 ping 來測速和選擇。如果要使用本功能，請打開選單裡的`統計可用性`。&lt;/li&gt;
&lt;li&gt;也可以實現 IStrategy 介面來自訂切換規則，然後給我們發一個 pull request。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果目前節點不可用請自行嘗試切換節點&lt;/p&gt;
&lt;p&gt;殺軟可能報毒，請新增信任，如不放心，請在虛擬機器中運行
哈勃報告：https://habo.qq.com/file/showdetail?pk=AD0GYV1oB2UIP1s9#pephoto .down_link{background:url(&amp;lsquo;&lt;a href=&#34;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg%27&#34;&gt;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg&#39;&lt;/a&gt;) no-repeat 100% 0% #fffdff; border: 1px solid #faf8fb; border-radius: 2px; color: #666; font-size: 14px; margin-bottom: 10px; padding: 5px 20px;}.downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downlink a{text-decoration:none;} .downlink a{text-decoration:none;font-size:15px;} .downlink a:link{color: #ffffff;} .downlink a:visited{color: #ffffff;} .downlink a:hover{color: #ffffff;} .downlink a:active{color: #ffffff;} .downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF !important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .yanshibtn{background: none repeat scroll 0 0 #d33431; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downbtn:hover,.yanshibtn:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .downbtn a:hover,.yanshibtn a:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;}&lt;/p&gt;</description>
    </item>
    <item>
      <title>Woothosting 6 美元/年 VPS 評測</title>
      <link>https://en.moejue.cn/zh-hant/posts/69/</link>
      <pubDate>Sun, 22 Jul 2018 08:28:06 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/69/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Woothosting 於 2019 年 4 月 1 日被收購，請不要再購買了（連結如下）&lt;/strong&gt;&lt;a href=&#34;https://cloud.tencent.com/redirect.php?redirect=1001&amp;amp;cps_key=2aed6076dbae3172c0dc334fb67ec869&amp;amp;from=console&#34;&gt;騰訊雲伺服器安全可靠高性能，多種配置供您選擇&lt;/a&gt;&lt;br&gt;
我的伺服器就是在上面買的，所以強烈推薦一波。&lt;br&gt;
買個 3.99 美元一年搭建個酸酸乳也是爽歪歪的(不會搭建可以來找我喔)&lt;br&gt;
溫馨提示：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;註冊的時候不要使用 QQ 郵箱註冊&lt;/li&gt;
&lt;li&gt;服務商是美國的，白天發工單，他們那邊晚上下班，所以不會回覆&lt;/li&gt;
&lt;li&gt;機器名字用 server 就會自動開通。其他名字可能會手動開通。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;VPS: OpenVZ&lt;/p&gt;
&lt;p&gt;CPU&lt;/p&gt;
&lt;p&gt;記憶體&lt;/p&gt;
&lt;p&gt;硬碟&lt;/p&gt;
&lt;p&gt;流量&lt;/p&gt;
&lt;p&gt;埠&lt;/p&gt;
&lt;p&gt;年付（點擊購買）&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;96M&lt;/p&gt;
&lt;p&gt;5G&lt;/p&gt;
&lt;p&gt;250G&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;3.99刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;192M&lt;/p&gt;
&lt;p&gt;10G&lt;/p&gt;
&lt;p&gt;1T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;5刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;0.5G&lt;/p&gt;
&lt;p&gt;15G&lt;/p&gt;
&lt;p&gt;1.5T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;6刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;1G&lt;/p&gt;
&lt;p&gt;20G&lt;/p&gt;
&lt;p&gt;2T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;6刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;0.5G&lt;/p&gt;
&lt;p&gt;20G&lt;/p&gt;
&lt;p&gt;1.5T&lt;/p&gt;
&lt;p&gt;1000M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;8刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;1G&lt;/p&gt;
&lt;p&gt;25G&lt;/p&gt;
&lt;p&gt;2.5T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;8刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;1G&lt;/p&gt;
&lt;p&gt;30G&lt;/p&gt;
&lt;p&gt;2T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;9刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;p&gt;1G&lt;/p&gt;
&lt;p&gt;40G&lt;/p&gt;
&lt;p&gt;3T&lt;/p&gt;
&lt;p&gt;100M&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#ZgotmplZ&#34;&gt;9刀&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2&lt;/p&gt;
&lt;p&gt;1G&lt;/p&gt;
&lt;p&gt;25G&lt;/p&gt;
&lt;p&gt;3T&lt;/p&gt;</description>
    </item>
    <item>
      <title>萌音社群來了~哇</title>
      <link>https://en.moejue.cn/zh-hant/posts/27/</link>
      <pubDate>Sat, 07 Jul 2018 07:41:09 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/27/</guid>
      <description>&lt;p&gt;兩個月的傾情之作，萌音社區它來了~
作為新一代開放性的二次元交流社群，圖片、影片、聲音，甚至是黑科技等，在允許的範圍內，你幾乎可以發佈任何內容&amp;hellip;..&lt;/p&gt;
&lt;p&gt;幻想領域走了，萌音社區來了！各種女裝大佬，基佬百合，咦咦咦小蘿莉，找緩♀交，聊哲♂學，應有盡有，自古紅藍出CP，不是百合就是基。快來和我們簽訂契約吧~~&lt;/p&gt;
&lt;p&gt;萌音社區,一個超好玩的ACGN二次元交流社群,一個充滿愛與和諧的二次元社群,新番舊番,日漫美圖,福利動漫,MMD等ACGN資源應有盡有.一起吐槽刷彈幕,尋找cosplay同好,還可以與大家分享二次元宅的日常,進入二次元的精彩世界
&lt;a href=&#34;https://www.moeins.com&#34;&gt;主站點 www.moeins.com&lt;/a&gt;
&lt;a href=&#34;https://www.moeins.cn/&#34;&gt;備用站點 www.moeins.cn&lt;/a&gt;
&lt;strong&gt;# 關於建立這個社群的目的呢&lt;/strong&gt;
其實沒什麼目的，就是想要有那麼一個屬於自己的二次元社群，然後一群喜歡二次元的小夥伴在裡頭瞎聊點什麼的，比如我老婆漂亮還是你老婆漂亮之類的，然後它就為此而誕生了。
萌音社區它不一定能成功，但我們一定會用心把它做好。
反正也就多續費個網域，目前託管在由&lt;a href=&#34;http://bbs.76fx.com/&#34;&gt;齊樂分享&lt;/a&gt;提供的洛杉磯機房，因為網域沒備案嘛
&lt;strong&gt;# 萌音社區的誕生歸功於以下專案&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;thinkPHP&lt;/li&gt;
&lt;li&gt;layui&lt;/li&gt;
&lt;li&gt;fly&lt;/li&gt;
&lt;li&gt;Onedrive&lt;/li&gt;
&lt;li&gt;layuiCMS 2.0&lt;/li&gt;
&lt;li&gt;video.js&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;向以上大佬們致敬！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;# 按慣例，放圖&lt;/strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1ft1g3egd90j317t0pv7cl.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1ft1g290p9bj31gt0p4div.jpg&#34;&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1ft1g2952ddj314h0p6di9.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>誰是Po主？</title>
      <link>https://en.moejue.cn/zh-hant/posts/68/</link>
      <pubDate>Mon, 25 Jun 2018 07:53:09 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/68/</guid>
      <description>&lt;p&gt;自從我率先使用微博的雲儲存作為二次元隨機API的圖片儲存庫後，網上便延伸出許多類似的二次元隨機API，在我所知的這些中挑選了幾個訪問看了下，發現許多圖片都相當眼熟。並且圖片連結也能在我資料庫中找到，這不就是我上傳的嗎？
難道他們都是採集我的嗎？
當然口說無憑，需要依據
然後選取了我已知的十個API接口，均為儲存在新浪圖床的二次元API。掛在伺服器上採集了一早上，採集了差不多10萬張，經過篩選重複無效的後僅剩一萬張左右。令人詫異，說明十個接口數據基本相同
接著透過程式分析出連結的上傳者，在這一萬張中，有75%的圖片均來自幻想領域圖床
雖然透過新浪圖片地址識別出新浪用戶已經不是什麼秘密了
&lt;a href=&#34;https://sandbox.runjs.cn/show/fx9b4hyv&#34;&gt;線上演示地址&lt;/a&gt; 這個是js版本的，程式碼可直接右鍵獲取
透過識別可發現，API中的大量圖片均來自幻想領域圖床微博上傳，也就是我自個上傳的，那些所謂的API是不是盜版我的，自己心裡有數
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fsnjxvkx9jj30fv08i0zn.jpg&#34;&gt;
原理揭秘：
由於現在註冊的微博帳號uid都很大，上傳的圖片基本都是007開頭的，所以下面這張圖片是我隨便在微博上挑了個老號複製過來的
連結為 &lt;a href=&#34;https://wxt.sinaimg.cn/thumb300/9d0d09ably1fsn7m0jyzzj20m80cidgm.jpg&#34;&gt;https://wxt.sinaimg.cn/thumb300/9d0d09ably1fsn7m0jyzzj20m80cidgm.jpg&lt;/a&gt; 的圖&lt;/p&gt;
&lt;p&gt;提取檔名 9d0d09ably1fsn7m0jyzzj20m80cidgm，前 8 位 9d0d09ab用 16 進制轉換下變為 2634877355，就是用戶 uid
然後拼接上微博用戶主頁地址:https://weibo.com/u/+uid
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fsni85dka6j30ik06wjrb.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;如果出現是 這種 &lt;a href=&#34;http://wx1.sinaimg.cn/mw690/0072Vf1pgy1foxkfv4t7bj31hc0u018w.jpg&#34;&gt;http://wx1.sinaimg.cn/mw690/0072Vf1pgy1foxkfv4t7bj31hc0u018w.jpg&lt;/a&gt; ，005、006、007 開頭的這種就用 62 進制轉
至於為什麼出現這個應該是發現 8 位 16 進制存不下了。
&lt;a href=&#34;https://weibo.com/u/6456124939&#34;&gt;https://weibo.com/u/6456124939
&lt;/a&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fsnkgpcq7pj30il06vjrb.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>網頁抓包之我的歌單</title>
      <link>https://en.moejue.cn/zh-hant/posts/31/</link>
      <pubDate>Tue, 05 Jun 2018 11:04:05 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/31/</guid>
      <description>&lt;p&gt;最近看到不少人部落格都發了關於網頁抓包的教學，然後也激起了我的興(zhuang)趣(bi)，就誕生了這篇文章
也剛好前段時間，&lt;a href=&#34;https://music.52ecy.cn/&#34;&gt;我的歌單&lt;/a&gt;對接酷狗的API失效了，趁機修復一下，順便寫個圖文教學。那麼就拿酷狗「開刀」
關於抓包的概念&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;抓包（packet capture）就是將網路傳輸發送與接收的資料包進行截獲、重發、編輯、轉存等操作，也用來檢查網路安全。抓包也經常被用來進行資料截取等。&lt;/p&gt;
&lt;p&gt;——來自基佬百科&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我們這裡講的是對網頁傳輸的資料進行截取，並不涉及重發、編輯等影響網路安全的操作。
其實關於&lt;a href=&#34;https://www.52ecy.cn/tag/%E6%8A%93%E5%8C%85&#34;&gt;抓包&lt;/a&gt;的文章，我早在16年的時候就已經發布了多篇，但是由於文章年久失修，圖片有的丟失，有的損壞，順序也全亂了。
抓包對於做WEB開發的人來說，可能會比較陌生，尤其是後端，但我是做桌面應用程式出身的，使用起來就得心應手。
目的：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;解析酷狗歌曲直鏈 - 修復我的歌單&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;目標網站：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://t.kugou.com/1md5hf5t8V2&#34;&gt;http://t.kugou.com/1md5hf5t8V2&lt;/a&gt; 酷狗我的歌單分享短網址&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;使用工具：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Google Chrome F12（或 Ctrl + Shift + I、或直接 點擊右鍵&amp;gt;檢查元素）開發人員工具&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;（注意以下教學請結合圖片觀看，看不清楚的請右鍵新視窗開啟圖片）
然後我這裡抓的是手機版頁面，因為電腦版整個歌單的列表是直接返回到原始碼中，不方便我們解析。手機版則是返回JSON。
Preserve Log：作用是在頁面跳轉後保留之前的日誌
左上角的手機標誌：切換當前瀏覽介面的UA為手機UA
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iyxmmr1j30nz0fl0u2.jpg&#34;&gt;
輸入網址後按Enter鍵訪問，網頁發生跳轉
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iybcesaj314p0arn2j.jpg&#34;&gt;
狀態碼302，得到重定向位址（務必看圖片，文字描述被精簡）
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iyb1qhdj30w00amjt6.jpg&#34;&gt;
抓包就到此結束，下面開始分析：
可以確定的是酷狗網站的音樂連結絕對不是固定的
以以往的經驗來說，這都是可疑參數
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0j14h87ij30qr0bdmya.jpg&#34;&gt;
在抓包日誌中尋尋覓覓，得到整個歌單列表的獲取方法 &lt;code&gt;list&lt;/code&gt;。並且包含歌曲的基礎資訊。
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iybbzb2j312a0e8afo.jpg&#34;&gt;
分析 &lt;code&gt;list&lt;/code&gt; 連結，就很明顯，這裡的參數和之前的很像
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iyb4b7bj30q50adwel.jpg&#34;&gt;
接下來就是分析每一首歌曲的連結
歌曲直鏈的有效期差不多為24小時左右，就會失效了
繼續查看抓包日誌
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iyc2p8aj314a0ecn23.jpg&#34;&gt;
帶上歌曲的hash值即可獲取到歌曲的相關資訊和直鏈（hash值在前邊的歌曲列表中已經返回了）
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fs0iza7xskj30mg06h3yi.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;總結：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;短網址 -&amp;gt; 網頁連結參數 -&amp;gt; 獲取歌單列表 -&amp;gt; 獲取歌曲 （循序漸進，把上一步得到的參數帶上訪問下一個網址）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;相關的程式碼自己去寫吧&amp;hellip;.-。-
很久沒發這種很教學性的文章了。
最後說一句，Google 開發人員工具真特喵好用！
隨便寫寫，溜~~&lt;/p&gt;
&lt;p&gt;相關推薦
（1）&lt;a href=&#34;https://mkblog.cn/492/&#34;&gt;使用PHP抓取Bing每日圖像並為己所用&lt;/a&gt;.孟坤部落格.
（2）&lt;a href=&#34;https://mkblog.cn/1273&#34;&gt;抓包入門（一）&lt;/a&gt;
相關程式碼
（1）&lt;a href=&#34;https://www.youngxj.cn/507.html&#34;&gt;酷狗歌單獲取歌曲資訊的介面原始碼&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>萌音全自動發卡平台上線</title>
      <link>https://en.moejue.cn/zh-hant/posts/67/</link>
      <pubDate>Sat, 12 May 2018 10:52:02 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/67/</guid>
      <description>&lt;p&gt;萌音自動發卡平台（以下簡稱「萌音發卡」），用於為個人用戶提供虛擬商品線上購買以及全自動發貨服務。
開發它的目的其實自己是沒什麼用，並且市面上有不少類似的產品，但是有朋友要，所以它就誕生了。
以盡可能簡單的原則實現了最基本的功能，所以介面非常的簡約，後期擴展也是非常方便。
&lt;a href=&#34;http://pay.52ecy.cn&#34;&gt;演示網站&lt;/a&gt;  （伺服器位於美國奧勒岡，速度有點慢，僅供演示使用）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;資金即時到帳&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;無需擔心第三方跑路，資金直接到帳，不經過第三方。快速回籠資金，超越競爭對手&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;多用戶無限制&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;不綁定任何帳號、域名、CPU，完全自由使用，隨意更換。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;多種支付方式&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;微信支付、支付寶支付、QQ錢包支付、財付通支付。同時支援電腦手機&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;非同步通知&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;採用同步+非同步通知，無需再擔心付款完後頁面被關閉導致訂單失效&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如何獲得萌音發卡的原始碼？&lt;br&gt;
目前僅提供以下幾種方式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;博主的熟人、朋友或者在專案上有貢獻的（不僅限於萌音發卡）&lt;/li&gt;
&lt;li&gt;優秀的幻想領域圖床用戶&lt;/li&gt;
&lt;li&gt;贊助專案58元以上即可獲得。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;有什麼問題可以點擊演示網站右上角的「聯繫客服」與我深入探討一下。&lt;strong&gt;常見問題&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1、萌音發卡是做什麼的，有什麼用？&lt;/p&gt;
&lt;p&gt;萌音發卡提供專業的虛擬卡密自動發貨服務。&lt;/p&gt;
&lt;p&gt;2、怎麼入駐萌音發卡平台，成為商戶？&lt;/p&gt;
&lt;p&gt;贊助專案58元以上即可獲得。&lt;/p&gt;
&lt;p&gt;3、怎麼查詢訂單/卡密？&lt;/p&gt;
&lt;p&gt;透過平台的訂單查詢功能，輸入您下單時填寫的聯繫方式或者訂單號查詢。&lt;a href=&#34;http://pay.52ecy.cn/search.html&#34;&gt;點我查詢&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4、平台可以賣些什麼？&lt;/p&gt;
&lt;p&gt;遊戲虛擬貨幣、道具、會員卡、軟體使用權等&lt;/p&gt;
&lt;p&gt;5、你們平台目前有多少種收款方式？&lt;/p&gt;
&lt;p&gt;目前支付寶、微信、QQ錢包三種。&lt;/p&gt;
&lt;p&gt;6、萌音發卡商戶的費率怎麼計算？&lt;/p&gt;
&lt;p&gt;全免，無任何費率。&lt;/p&gt;
&lt;p&gt;7、買家如何獲取卡密資訊？&lt;/p&gt;
&lt;p&gt;透過商品購買頁面選擇自己要購買的商品，選擇支付通道付款後會自動跳轉到發貨頁面，如果沒有收到對應的卡密，保存好自己的訂單號，打開卡密查詢地址： &lt;a href=&#34;http://pay.52ecy.cn/search.html&#34;&gt;點我進入&lt;/a&gt; 輸入您剛剛下單時填寫的訂單聯繫方式或訂單號查詢&lt;/p&gt;
&lt;p&gt;8、申請提現最低金額是多少？申請後多少時間可以到帳？&lt;/p&gt;
&lt;p&gt;萌音發卡的金額是即時到帳，無需經過第三方。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr7mpdap67j30w80ejq3p.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr7mpda3o7j30ow0n3wgj.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr7mpdcon8j30w70f374u.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr7mpdesjuj30vs0qgdhv.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr7mpduxw8j30wn0lkgng.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>在 Linux 上安裝 PHP 環境</title>
      <link>https://en.moejue.cn/zh-hant/posts/65/</link>
      <pubDate>Mon, 07 May 2018 06:52:32 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/65/</guid>
      <description>&lt;p&gt;學習環境：Centos 7.2 正式版_64位&lt;/p&gt;
&lt;p&gt;# 更新來源
yum update&lt;/p&gt;
&lt;h1 id=&#34;安裝-nginx&#34;&gt;安裝 Nginx&lt;/h1&gt;
&lt;p&gt;yum install nginx -y&lt;/p&gt;
&lt;h1 id=&#34;安裝-mysql&#34;&gt;安裝 MySQL&lt;/h1&gt;
&lt;p&gt;wget &lt;a href=&#34;https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm&#34;&gt;https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm&lt;/a&gt;
yum localinstall mysql57-community-release-el7-11.noarch.rpm&lt;/p&gt;
&lt;h1 id=&#34;安裝-php-72&#34;&gt;安裝 PHP 7.2&lt;/h1&gt;
&lt;p&gt;rpm -Uvh &lt;a href=&#34;https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm&#34;&gt;https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm&lt;/a&gt;
rpm -Uvh &lt;a href=&#34;https://mirror.webtatic.com/yum/el7/webtatic-release.rpm&#34;&gt;https://mirror.webtatic.com/yum/el7/webtatic-release.rpm&lt;/a&gt;
yum update
yum install -y php72w-cli php72w-common php72w-dba php72w-devel php72w-fpm php72w-gd php72w-imap php72w-mbstring php72w-mysql php72w-pdo php72w-pdo_dblib php72w-pear php72w-pecl-igbinary php72w-pecl-xdebug php72w-process php72w-xml php72w-xmlrpc php72w-opcache php72w-pecl-memcached php72w-pecl-mongodb php72w-pecl-redis&lt;/p&gt;
&lt;h1 id=&#34;啟動服務&#34;&gt;啟動服務&lt;/h1&gt;
&lt;p&gt;service nginx start
service mysql start
service php-fmp start
/usr/sbin/php-fpm &amp;ndash;nodaemonize &amp;ndash;fpm-config /etc/php-fpm.conf &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&lt;/p&gt;</description>
    </item>
    <item>
      <title>幻想領域圖床系統停止更新公告</title>
      <link>https://en.moejue.cn/zh-hant/posts/56/</link>
      <pubDate>Mon, 30 Apr 2018 12:28:37 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/56/</guid>
      <description>&lt;p&gt;據不完全統計，輕量級新浪圖床系統-幻想領域，自1.0版本發佈起(2018-03-08)，至今(2018-04-30)累計安裝超過2000+次，並且每天還以數十個的數量急劇增加，其中，盜版用戶不超過5%（你們都是恥辱），期間被大大小小的網站、部落格、論壇、軟體園等轉載發佈超過百次，包括傳播盜版的，甚至被放到某某平台出售。&lt;/p&gt;
&lt;p&gt;幻想領域 非商業版本(永久免費，無商業版) 遵守 GPL 授權條款及附屬條款進行發佈。&lt;br&gt;
如果你使用並且修改了我的GPL軟體，那麼你的軟體也必須要開源，否則就不能使用我的軟體。&lt;br&gt;
所有基於幻想領域的修改版或者二次開發都必須開源，如不遵守相關條款，請停止使用並且刪除一切和幻想領域相關的東西。違反一次 GPL 協議，可能沒有什麼直接後果，然而這意味著你們從此走上了一個不同的方向，一個危險的方向。希望你們能夠明白，願你們好自為之。&amp;mdash;-致那些盜版並且傳播盜版的人&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqp7dw64zlj30m80dwdgr.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqp6xk8reoj30gn0gpaav.jpg&#34;&gt;&lt;br&gt;
截至1.2.3版本，其功能已較為完善，且無BUG，作為一款輕量級的圖床已經足夠了，本身該系統誕生的初衷僅僅只是為了自己方便使用而已。現決定，停止幻想領域對外的更新服務，僅對交流群中&lt;strong&gt;優秀&lt;/strong&gt;的使用幻想領域搭建的圖床系統的網站更新，其中相關的插件介面文件可以在群中私聊我索取。&lt;br&gt;
最後，感謝大家一路以來的支持和關注！謝謝那些曾在群中為我維權的人！&lt;/p&gt;
&lt;p&gt;題外話，這篇文章在幾天前就已經寫好了，一直在考慮到底要不要發佈，出於各種的原因，還是比較糾結的，想想反正都寫了還是發佈出去好了。最主要還是沒有太多的精力去維護，然後又開始了個新專案&amp;hellip;&amp;hellip;..待續&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5月5日補充部分&lt;/strong&gt;&lt;br&gt;
今天有朋友給我發了張圖回饋個事，大概的意思是說我幻想領域圖床抄襲Chevereto圖床（國外著名的圖床系統，國內多少人用這破解版不知道）主要針對以下兩個問題做個解答&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr0i1um0psj30jj0bjt9b.jpg&#34;&gt;&lt;br&gt;
那玩意？那玩意你也寫個出來看看？幻想領域圖床最核心的功能是將圖片上傳到新浪雲儲存之上，且並不提供本地上傳服務，Chevereto的圖床有這個功能？100%抄？了都沒有了解過，為何能這樣肆無忌憚地噴？&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fr0i1um2lsj30kf0axq3h.jpg&#34;&gt;&lt;br&gt;
所謂的幻想圖床？介面參考哪個程式？幻想領域圖床的首頁介面是由 bootcss V3 所提供的介面模板。何來參考一說？&lt;br&gt;
&lt;a href=&#34;https://v3.bootcss.com/examples/cover/&#34;&gt;https://v3.bootcss.com/examples/cover/&lt;/a&gt; 麻煩先了解一下，不要亂污衊別人我不想引戰，麻煩看到不要說話&lt;/p&gt;
&lt;p&gt;**6月24號補充&lt;br&gt;
**今天又有群友@我，給我發了個圖。看圖說話&lt;br&gt;
同為敲程式碼的，你這樣做良心不會痛嗎？所以你只是個盜版狗。傳播盜版的比使用盜版的更可惡。可想而知，你的人和你的人品如同你的行為一樣骯髒令人唾棄&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fsmkn4goqlj30ri0f574s.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>emlog 新浪上傳插件&#43;接口 V1.1</title>
      <link>https://en.moejue.cn/zh-hant/posts/7/</link>
      <pubDate>Sat, 21 Apr 2018 11:02:22 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/7/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqkhhzq5raj30zv0kf124.jpg&#34;&gt;&lt;br&gt;
emlog 後台撰寫文章新浪上傳圖片外掛&lt;br&gt;
第一次撰寫 emlog 外掛，參考了七牛圖床的寫法（對，就是後台那個），推薦兩個一起使用&lt;br&gt;
外掛下載後直接上傳到 emlog 後台即可，無需解壓縮 （這話誰說的，站出來，保證不打死你）&lt;br&gt;
具體使用方法在外掛設定介面有寫，下載地址在文章底部&lt;br&gt;
哪位好心人有 emlog 的開發者帳號，可以幫我提交到 emlog 應用中心裡&lt;/p&gt;
&lt;p&gt;注意： GitHub 打包下載的 zip 壓縮包檔名會被加上&lt;code&gt;-master&lt;/code&gt;，包括裡面壓縮的子資料夾，需要重新命名為&lt;code&gt;SinaUpload&lt;/code&gt;才能上傳，否則 emlog 會報錯&lt;/p&gt;
&lt;p&gt;此外掛僅限 emlog 部落格系統使用，其他部落格系統無法使用&lt;br&gt;
以下是公開介面，可自行編寫其他系統外掛&lt;/p&gt;
&lt;h2 id=&#34;介面地址&#34;&gt;介面地址：&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://img.52ecy.cn/home/Interface&#34;&gt;https://img.52ecy.cn/home/Interface&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;請求參數說明&#34;&gt;請求參數說明：&lt;/h2&gt;
&lt;p&gt;名稱&lt;/p&gt;
&lt;p&gt;說明&lt;/p&gt;
&lt;p&gt;username&lt;/p&gt;
&lt;p&gt;幻想領域帳號&lt;/p&gt;
&lt;p&gt;password&lt;/p&gt;
&lt;p&gt;幻想領域密碼&lt;/p&gt;
&lt;p&gt;multipart(可選)&lt;/p&gt;
&lt;p&gt;false/true，使用本地上傳還是遠端上傳，預設本地上傳(true)&lt;/p&gt;
&lt;p&gt;url(可選)&lt;/p&gt;
&lt;p&gt;需要轉存的圖片地址，當 multipart 為 false 時，url 必須傳遞&lt;/p&gt;
&lt;h2 id=&#34;返回標準json資料&#34;&gt;返回標準json資料&lt;/h2&gt;
&lt;p&gt;{
&amp;ldquo;code&amp;rdquo;:&amp;ldquo;0000&amp;rdquo;,  #狀態碼
&amp;ldquo;msg&amp;rdquo;:&amp;ldquo;&lt;a href=&#34;http://www.52ecy.cn/randbg.png%22&#34;&gt;http://www.52ecy.cn/randbg.png&#34;&lt;/a&gt; #圖片地址
}&lt;/p&gt;
&lt;p&gt;成功返回 000 狀態碼和圖片地址，失敗返回狀態碼和原因&lt;/p&gt;
&lt;p&gt;.down_link{background:url(&amp;lsquo;&lt;a href=&#34;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg%27&#34;&gt;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg&#39;&lt;/a&gt;) no-repeat 100% 0% #fffdff; border: 1px solid #faf8fb; border-radius: 2px; color: #666; font-size: 14px; margin-bottom: 10px; padding: 5px 20px;}.downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downlink a{text-decoration:none;} .downlink a{text-decoration:none;font-size:15px;} .downlink a:link{color: #ffffff;} .downlink a:visited{color: #ffffff;} .downlink a:hover{color: #ffffff;} .downlink a:active{color: #ffffff;} .downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF !important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .yanshibtn{background: none repeat scroll 0 0 #d33431; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downbtn:hover,.yanshibtn:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .downbtn a:hover,.yanshibtn a:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;}&lt;/p&gt;</description>
    </item>
    <item>
      <title>幻想領域圖床系統V1.2正式版發布</title>
      <link>https://en.moejue.cn/zh-hant/posts/66/</link>
      <pubDate>Wed, 11 Apr 2018 11:40:25 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/66/</guid>
      <description>&lt;h1 id=&#34;幻想領域12&#34;&gt;幻想領域1.2&lt;/h1&gt;
&lt;p&gt;它的誕生，並不是最終的解決方案，開發它的目的僅僅只是為了方便自己使用.&lt;br&gt;
&lt;a href=&#34;https://img.52ecy.cn/&#34;&gt;項目主頁&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://github.com/178146582/Fantasy-field&#34;&gt;項目地址&lt;br&gt;
&lt;/a&gt;&lt;a href=&#34;https://www.52ecy.cn/post-68.html&#34;&gt;幻想領域V1.0&lt;/a&gt; ☜(詳細介紹戳介裡)&lt;/p&gt;
&lt;h1 id=&#34;下載&#34;&gt;下載&lt;/h1&gt;
&lt;p&gt;最新正式版&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://codeload.github.com/178146582/Fantasy-field/zip/master&#34;&gt;立即下載&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;安裝&#34;&gt;安裝&lt;/h1&gt;
&lt;p&gt;你需要將幻想領域的原始碼解壓縮並上傳至網站根目錄，訪問網站域名會自動跳轉到安裝程式，根據嚮導提示安裝即可。如果未跳轉，請手動訪問http://您的域名/install.php 進行安裝&lt;br&gt;
首次安裝成功後需要登入管理員後台對圖床進行一些基本配置，才能使用&lt;br&gt;
後台地址：http://您的域名/admin 但是諷刺的是，您需要在前台進行登入&lt;/p&gt;
&lt;h4 id=&#34;環境支持&#34;&gt;環境支持&lt;/h4&gt;
&lt;p&gt;請注意，幻想領域自1.0版本起只支持PHP版本≥5.6，請注意更新您的PHP版本。&lt;br&gt;
幻想領域自1.2版本起將採用覆蓋安裝，即保留歷史數據，如需刪除，還請手動清空&lt;/p&gt;
&lt;h1 id=&#34;更新說明&#34;&gt;更新說明&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;完善探索界面(最近、隨機)&lt;/li&gt;
&lt;li&gt;增加圖片主頁&lt;/li&gt;
&lt;li&gt;一鍵生成HTML、BBcode、Markdown等代碼&lt;/li&gt;
&lt;li&gt;加入自動更新系統(雖然不一定能用到了)&lt;/li&gt;
&lt;li&gt;上傳更加友好的進度顯示(雖然他並不準確)&lt;/li&gt;
&lt;li&gt;修改各種更加合理的默認配置&lt;/li&gt;
&lt;li&gt;修復系統高危漏洞(當前版本務必更新)&lt;/li&gt;
&lt;li&gt;增加註冊相關限制&lt;/li&gt;
&lt;li&gt;更好的兼容性，多平台運行，支持PHP7.0+&lt;/li&gt;
&lt;li&gt;修復已知的Bug&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fq8ylxd9ilj30ud0lzb29.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fq8ylvspsbj30tx0lqtrl.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>幻想領域圖床使用幫助</title>
      <link>https://en.moejue.cn/zh-hant/posts/63/</link>
      <pubDate>Mon, 19 Mar 2018 11:56:29 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/63/</guid>
      <description>&lt;p&gt;由於許多人在安裝使用過程中遇到問題，因此還是得總結一下，如果還不能解決可以加群向萬能的群友提問&lt;/p&gt;
&lt;h2 id=&#34;驗證碼不顯示&#34;&gt;驗證碼不顯示&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;檢查伺服器是否支援 GD 圖形處理庫&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;檢查伺服器 WEB 環境&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Apache：如果你的程式安裝在二級目錄下，修改程式根目錄下的 .htaccess 檔案&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Rewritebase /你的二級目錄名/index.php
RewriteRule ^(.*)$ /你的二級目錄名/index.php?/$1 [L]
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nginx：找到設定檔 nginx-conf，在 location / 段中修改加入以下內容&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;try_files $uri $uri/ /index.php?$query_string;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;或者是這個&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;if (!-d $request_filename){
    set $rule_0 1$rule_0;
}
if (!-f $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = &amp;#34;21&amp;#34;){
    rewrite ^/(.*)$ /index.php?/$1 last;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;IIS 偽靜態同 Apache 一樣&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;寶塔面板使用現成的 thinkPHP 偽靜態&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;郵件傳送失敗&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先確定你的 25 埠是否被封禁，如果封掉，嘗試讓主機商啟用 (如果不啟用就換伺服器)&lt;/li&gt;
&lt;li&gt;關掉註冊驗證或者等下個版本更新（註：改埠是沒有用的，465 埠需要 ssl 支援）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;資料介面異常&#34;&gt;資料介面異常&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;偽靜態重定向失敗，請參考上方的再做設定&lt;/p&gt;</description>
    </item>
    <item>
      <title>輕量級新浪圖床程式 幻想領域1.0發佈</title>
      <link>https://en.moejue.cn/zh-hant/posts/61/</link>
      <pubDate>Thu, 08 Mar 2018 02:20:59 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/61/</guid>
      <description>&lt;h1 id=&#34;幻想領域&#34;&gt;幻想領域&lt;/h1&gt;
&lt;p&gt;哇塞，終於有一款屬於自己的圖床了.
幻想領域是使用 PHP 語言開發的一款輕量級的新浪圖床系統.
它的誕生，並不是最終的解決方案，開發它的目的是為了方便自己使用.
&lt;a href=&#34;https://img.52ecy.cn/&#34;&gt;專案主頁&lt;/a&gt;
&lt;a href=&#34;https://github.com/178146582/Fantasy-field&#34;&gt;專案地址&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;系統介紹&#34;&gt;系統介紹&lt;/h1&gt;
&lt;p&gt;在 幻想領域中, 圖床圖片全部託管在 新浪雲, 每張圖片都有多張不同級別的縮略圖.這便是幻想領域的最大特色之一.
擁有較為完善的使用者系統與管理員系統。管理員在後台擁有完全權限，對網站的一切基本配置
我的圖庫，將會羅列出使用者自己所上傳的所有圖片，管理員則顯示系統託管的所有圖片.你可以在這裡對圖片進行刪除、預覽或者複製它，但刪除僅僅只是不再出現在本系統中，圖片仍然是存在於新浪之上，這點你是要知道的.
探索，它是前台對使用者圖片預覽的功能，在這裡你可以發現和找到你需要的东西.如果你不需要它，可以在後台進行關閉設置.
上傳新浪圖床並非無要求，它需要你進行登入驗證，但我們擁有一套獨立的新浪登入程式，不依賴任何擴展，並且無驗證碼，cookie 過期將自動為你進行登入，為你解決一切後顧之憂，所以你必須在後台設置你的新浪帳號密碼才能正常使用.&lt;/p&gt;
&lt;h1 id=&#34;下載&#34;&gt;下載&lt;/h1&gt;
&lt;p&gt;最新正式版&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://codeload.github.com/178146582/Fantasy-field/zip/master&#34;&gt;立即下載&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;安裝&#34;&gt;安裝&lt;/h1&gt;
&lt;p&gt;你需要將幻想領域的原始碼解壓縮並上傳至網站根目錄，訪問網站網域會自動跳轉到安裝程式，根據嚮導提示安裝即可。如果未跳轉，請手動訪問http://您的域名/install.php 進行安裝
首次安裝成功後需要登入管理員後台對圖床進行一些基本配置，才能使用
後台地址：http://您的域名/admin 但是諷刺的是，您需要在前台進行登入&lt;/p&gt;
&lt;h4 id=&#34;環境支援&#34;&gt;環境支援&lt;/h4&gt;
&lt;p&gt;請注意，幻想領域自1.0版本起只支援PHP版本≥5.6，請注意更新您的PHP版本。&lt;/p&gt;
&lt;h1 id=&#34;更新預告&#34;&gt;更新預告&lt;/h1&gt;
&lt;p&gt;前台獨立的圖片預覽介面
一鍵生成HTML，bbs 等程式碼
最熱、搜尋、隨機、分類等功能
整合短網址系統
&amp;hellip;&amp;hellip;&amp;hellip;等等
它們都將在未來的版本中被支援
如果你有更好的建議或者意見，以及 BUG 的回饋，都可以在這裡給我留言或者發送郵件到 &lt;a href=&#34;mailto:admin@52ecy.cn&#34;&gt;admin@52ecy.cn&lt;/a&gt;。&lt;/p&gt;
&lt;h1 id=&#34;許可證-faq&#34;&gt;許可證 FAQ&lt;/h1&gt;
&lt;p&gt;幻想領域 非商業版本 遵守 GPL 許可證及附屬條款進行發布，歸結為以下幾點：&lt;/p&gt;
&lt;h2 id=&#34;必須遵守&#34;&gt;必須遵守：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;將 GPL V3 許可證包含在你所修改並開源的版本中。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;賦予你的權力&#34;&gt;賦予你的權力：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自由下載使用幻想領域&lt;/li&gt;
&lt;li&gt;將幻想領域包含在新的開源專案中&lt;/li&gt;
&lt;li&gt;更改原始碼&lt;/li&gt;
&lt;li&gt;傳播幻想領域&lt;strong&gt;原版&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;禁止以下行為&#34;&gt;禁止以下行為：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;以商業目的使用幻想領域&lt;/li&gt;
&lt;li&gt;去除、篡改程式版權資訊&lt;/li&gt;
&lt;li&gt;商業目的專賣、銷售原版或二次修改版本&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;介面預覽&#34;&gt;介面預覽&lt;/h1&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fp4ju7716lj30lr0s8gmj.jpg&#34;&gt;&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fp4ju7bjjzj30kc09vglo.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fp4ju6keewj30zm0mpwge.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fp4ju7fu8gj31200mpn0a.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fp4ju7rr0hj31200mp76q.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fp4jtxb9bsj31200mpq76&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fp4ju6yg11j30xe0mp102.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>隨機二次元圖片API第二彈</title>
      <link>https://en.moejue.cn/zh-hant/posts/60/</link>
      <pubDate>Sun, 04 Mar 2018 11:01:46 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/60/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqeqjtrbj1j30tn0lrhdt.jpg&#34;&gt;&lt;br&gt;
時隔差2天三個月，距離首個隨機二次元圖片API發佈已有許久時間。&lt;br&gt;
第二彈API，突如其來&lt;/p&gt;
&lt;h2 id=&#34;更新說明&#34;&gt;更新說明：&lt;/h2&gt;
&lt;p&gt;相較於上一個版本，這次的圖片更適合做背景圖片、桌面壁紙等。&lt;br&gt;
上一個版本就是個大雜燴，什麼圖片都有，慘不忍睹（我自己都不用）。這個版本，花了一點時間，篩選出部分圖片(1080P+)並上傳至新浪雲。&lt;br&gt;
真正意義上支援HTTPS，圖片全託管在新浪雲上，速度也有所提升。&lt;br&gt;
去除了各種意義上的參數設定&lt;br&gt;
圖片內容均為動漫二次元圖片（全年齡段(笑)）&lt;/p&gt;
&lt;h2 id=&#34;介面位址&#34;&gt;介面位址：&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://random.52ecy.cn/randbg.php&#34;&gt;https://random.52ecy.cn/randbg.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;對，呼叫就是如此簡單，直接訪問即可使用，且行且珍惜。&lt;br&gt;
&lt;a href=&#34;https://www.52ecy.cn/post-56.html&#34;&gt;上一個草率的版本&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://random.52ecy.cn/&#34;&gt;項&lt;/a&gt;&lt;a href=&#34;https://random.52ecy.cn/&#34;&gt;目主頁&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;隨機動漫桌布，每天刷一刷，每次都不一樣。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://random.52ecy.cn/&#34;&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>利用.htaccess綁定子網域到子目錄</title>
      <link>https://en.moejue.cn/zh-hant/posts/58/</link>
      <pubDate>Mon, 22 Jan 2018 01:18:11 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/58/</guid>
      <description>&lt;p&gt;一般情況下，一台虛擬主機只允許綁定一個域名到根目錄下。
使用過emlog的人，應該對其中的靜態連結不陌生，它就是典型的利用.htaccess檔案來對網頁進行域名轉向。
利用.htaccess綁定域名到子目錄，前提是你的空間伺服器必須支援Apache的rewrite功能，只有這樣才能使用.htaccess。如果你的空間是Linux伺服器，一般預設都已開啟。即可以實現綁定域名到子目錄、一個空間多個站點。&lt;/p&gt;
&lt;p&gt;下面是以 link.52ecy.cn 綁定到子目錄link為例的.htaccess程式碼。&lt;/p&gt;
&lt;p&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /&lt;/p&gt;
&lt;h1 id=&#34;綁定link52ecycn-到子目錄link&#34;&gt;綁定link.52ecy.cn 到子目錄link&lt;/h1&gt;
&lt;p&gt;RewriteCond %{HTTP_HOST} ^link\.52ecy\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/link/
RewriteRule ^(.*)$ link/$1?Rewrite [L,QSA]
#可以綁定多個 只需重複上三行程式碼並更改一下域名、目錄名 就好了
&lt;/IfModule&gt;&lt;/p&gt;
&lt;p&gt;如果你已完成上面的步驟，你的子域名應該可以訪問了，但你會發現在瀏覽器上訪問「主域名+綁定的域名目錄」也可以訪問，可這並不是我們想要的。
接下來我們完成最後一步，在每一個綁定的目錄中，如link目錄中，也增加一個 .htaccess 檔案。
.htaccess程式碼如下：&lt;/p&gt;
&lt;p&gt;下面是以 music.xmgho.com 綁定到子目錄music為例的.htaccess程式碼。
即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。&lt;/p&gt;
&lt;p&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
#只許綁定的域名訪問
RewriteCond %{HTTP_HOST} !^link\.52ecy\.cn$ [NC]
RewriteRule (.*) &lt;a href=&#34;http://link.52ecy.cn/$1&#34;&gt;http://link.52ecy.cn/$1&lt;/a&gt; [L,R=301]
#對綁定目錄下與 同名的目錄的處理
RewriteCond %{REQUEST_URI} ^\/link\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
&lt;/IfModule&gt;&lt;/p&gt;
&lt;p&gt;結語：
由於我的伺服器本身就支援子域名綁定到子目錄，所以我自己沒法測試，不過我讓朋友在阿里云的主機測試通過了，但阿里云限制了數量，多綁定的話會跳到根目錄。由此看來，並不是所有的伺服器商都支援這樣玩，還得自行測試。
最後，最重要的一點就是，你的域名得解析過來才有用的[哭笑~]&lt;/p&gt;</description>
    </item>
    <item>
      <title>為你的部落格加上一個Live2D看板娘吧</title>
      <link>https://en.moejue.cn/zh-hant/posts/2/</link>
      <pubDate>Sun, 24 Dec 2017 10:14:22 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/2/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqer4e0f8bj30nw0kkqos.jpg&#34;&gt;
前段時間，在不少人部落格看到這個 Live2D 看板娘，頗感興趣！就查閱了點相關教學為自己部落格也添加上了&lt;/p&gt;
&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;live2d並不是一種先進的技術，它產生的效果，都是用基本的平移、旋轉、透明、曲面變形等操作實現的。最終的效果與貼圖關係很大，而每一個動作，都需要製作師的精細調整。這是一個需要消耗大量時間精力的過程，因此品質好的模型並不多，品質好的也一般是在遊戲中，版權受到保護，不能隨意使用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文章中所用模型解包自&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.sinsiroad.potionmaker&amp;amp;hl=zh_CN&#34; title=&#34;藥水製作師&#34;&gt;藥水製作師&lt;/a&gt;手機遊戲，版權歸該官方所有。(沒錯，我也是來安利這款遊戲的)&lt;/p&gt;
&lt;h2 id=&#34;準備工作&#34;&gt;準備工作&lt;/h2&gt;
&lt;p&gt;俗話雖說：「授人以魚不如授人以漁」，但是由於這魚比較難釣，我們還是乖乖搬個小板凳坐吃魚群眾吧！
以下程式碼是我光明正大從&lt;a href=&#34;https://haremu.com/p/205&#34;&gt;後宮學長&lt;/a&gt;那偷過來的魚加以烹飪而成。&lt;/p&gt;
&lt;p&gt;先到我的 &lt;a href=&#34;https://github.com/178146582/live2d&#34; title=&#34;Github&#34;&gt;Github&lt;/a&gt; 去下載我再次整理過後的live 2D的程式碼(包含兩人的動作和初始的三套貼圖)，畢竟還是煮熟的好吃點~&lt;/p&gt;
&lt;p&gt;下載後解壓縮程式碼到你的部落格網站根目錄去。（目錄位置可以自訂）&lt;/p&gt;
&lt;p&gt;然後把解壓縮出來的資料夾改名為：live2d 。（叫啥無所謂，好看最重要）
(少女盲目分析中)
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fqer55sg1mj30sj0jkjyh.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fqerbwulp3j30sh0jkqa4.jpg&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;食用方法&#34;&gt;食用方法&lt;/h2&gt;
&lt;p&gt;然後就教大家怎麼吃吧，呸，還真吃起來了&lt;/p&gt;
&lt;p&gt;在你部落格程式頭部檔案（header.php）引入介面樣式，在 head 標籤內插入如下程式碼：&lt;/p&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;https://en.moejue.cn/live2d/css/live2d.css&#34; /&gt;
&lt;p&gt;在你部落格程式頁腳檔案（footer.php）引入腳本，在 body 標籤結束前插入如下程式碼：&lt;/p&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
    var message\_Path = &#39;/live2d/&#39;
    var home\_Path = &#39;https://www.52ecy.cn/&#39;
&lt;/script&gt;
&lt;script type=&#34;text/javascript&#34; src=&#34;https://en.moejue.cn/live2d/js/live2d.js&#34;&gt;&lt;/script&gt;
&lt;script type=&#34;text/javascript&#34; src=&#34;https://en.moejue.cn/live2d/js/message.js&#34;&gt;&lt;/script&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
    loadlive2d(&#34;live2d&#34;, &#34;/live2d/model/tia/model.json&#34;);
&lt;/script&gt;
&lt;p&gt;以上程式碼在使用絕對路徑時要注意一個問題：
像我部落格 &lt;a href=&#34;https://www.52ecy.cn&#34;&gt;www.52ecy.cn&lt;/a&gt; 和 52ecy.cn 都可以進行訪問，但是如果在引用時使用了www，訪問www.52ecy.cn時是沒有問題，但在直接訪問52ecy.cn時，會因為跨域問題(子網域不同也屬於跨域)，導致json無法載入，然後你的看板娘就出不來了。
可以改為以下程式碼(人物的切換也只需改為相應的資料夾名字即可)&lt;/p&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
    loadlive2d(&#34;live2d&#34;, &#34;&lt;?php echo &#39;http://&#39;.$\_SERVER\[&#39;HTTP\_HOST&#39;\].&#39;/&#39;; ?&gt;live2d/model/Pio/model.json&#34;);
&lt;/script&gt;
&lt;p&gt;在合適的頁面位置插入 Live2D 看板娘的元素，可以放在底部：&lt;/p&gt;
&lt;div id=&#34;landlord&#34;&gt;
    &lt;div class=&#34;message&#34; style=&#34;opacity:0&#34;&gt;&lt;/div&gt;
    &lt;canvas id=&#34;live2d&#34; width=&#34;280&#34; height=&#34;250&#34; class=&#34;live2d&#34;&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;p&gt;滑鼠放在頁面某個元素上時，需要 Live2D 看板娘提示的請修改 message.json 檔案。&lt;/p&gt;
&lt;p&gt;{
&amp;ldquo;mouseover&amp;rdquo;: [
{
&amp;ldquo;selector&amp;rdquo;: &amp;ldquo;.container a[href^=&amp;lsquo;http&amp;rsquo;]&amp;rdquo;,  //此處修改為你頁面元素的標籤名
&amp;ldquo;text&amp;rdquo;: [&amp;ldquo;要看看 {text} 麼？&amp;rdquo;]  //此處修改為你需要提示的文字
},
{
&amp;ldquo;selector&amp;rdquo;: &amp;ldquo;.navto-search&amp;rdquo;,
&amp;ldquo;text&amp;rdquo;: [&amp;ldquo;在找什麼東西呢，需要幫忙嗎？&amp;rdquo;]
}
],
&amp;ldquo;click&amp;rdquo;: [  //此處是 Live2D 看板娘的觸摸事件提示
{
&amp;ldquo;selector&amp;rdquo;: &amp;ldquo;#landlord #live2d&amp;rdquo;,
&amp;ldquo;text&amp;rdquo;: [&amp;ldquo;不要動手動腳的！快把手拿開~~&amp;rdquo;, &amp;ldquo;真…真的是不知羞恥！&amp;rdquo;, &amp;ldquo;再摸的話我可要報警了！⌇●﹏●⌇&amp;rdquo;, &amp;ldquo;110嗎，這裡有個變態一直在摸我(ó﹏ò｡)&amp;rdquo;]
}
]
}&lt;/p&gt;</description>
    </item>
    <item>
      <title>隨機二次元圖片API上線</title>
      <link>https://en.moejue.cn/zh-hant/posts/52/</link>
      <pubDate>Wed, 06 Dec 2017 14:52:50 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/52/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqjcwlvnqzj30y40lnjzu.jpg&#34;&gt;&lt;br&gt;
&lt;a href=&#34;https://www.52ecy.cn/randbg&#34;&gt;隨機二次元圖片API上線 —— 隨機動漫桌布，每天刷一刷，每次都不一樣。&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;接口地址&#34;&gt;接口地址：&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.52ecy.cn/randbg/randbg.php&#34;&gt;https://www.52ecy.cn/randbg/randbg.php&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;請求參數說明&#34;&gt;請求參數說明：&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;名稱&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;說明&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;type(可選)&lt;/p&gt;
&lt;p&gt;json：返回標準json資料(圖片地址)&lt;br&gt;
302：跳轉至圖片地址(插入HTML圖片時務必使用)&lt;/p&gt;
&lt;p&gt;total(可選)&lt;/p&gt;
&lt;p&gt;1-10 返回的圖片數量(僅json資料時有效，最多10張)&lt;/p&gt;
&lt;p&gt;style(可選)&lt;/p&gt;
&lt;p&gt;1/2/3 返回圖片的類型，&lt;br&gt;
1：webp縮略圖、&lt;br&gt;
2：jpg縮略圖、&lt;br&gt;
3：不帶浮水印原圖，其他均為帶浮水印的原圖&lt;/p&gt;
&lt;p&gt;https(可選)&lt;/p&gt;
&lt;p&gt;true/false，返回圖片地址是否為https形式(目前https憑證為未驗證狀態，建議使用http)&lt;/p&gt;
&lt;h2 id=&#34;返回標準的json資料&#34;&gt;返回標準的json資料&lt;/h2&gt;
&lt;p&gt;{
&amp;ldquo;total&amp;rdquo;:&amp;ldquo;1&amp;rdquo;,  #圖片數量
&amp;ldquo;img&amp;rdquo;:&amp;ldquo;&lt;a href=&#34;http://www.52ecy.cn/randbg.png%22&#34;&gt;http://www.52ecy.cn/randbg.png&#34;&lt;/a&gt; #圖片地址
}&lt;/p&gt;
&lt;h2 id=&#34;呼叫範例&#34;&gt;呼叫範例&lt;/h2&gt;
&lt;p&gt;background: url(&lt;a href=&#34;http://www.52ecy.cn/randbg/randbg.php?type=302&amp;amp;style=3&#34;&gt;http://www.52ecy.cn/randbg/randbg.php?type=302&amp;style=3&lt;/a&gt;) no-repeat center;&lt;/p&gt;
&lt;img src=&#34;http://www.52ecy.cn/randbg/randbg.php?type=302&amp;style=3&#34;&gt;
&lt;p&gt;網站呼叫包括但不限於網頁html標籤的呼叫、動態語言的載入、APP內網頁的載入。&lt;/p&gt;
&lt;h2 id=&#34;使用限制&#34;&gt;使用限制&lt;/h2&gt;
&lt;p&gt;由於API剛上線，處於公測階段，不對介面的呼叫實行限制。如果將來出現不可抗力的因素，將對介面採取限制或者其他方案，望熟知。&lt;/p&gt;
&lt;h2 id=&#34;版權及隱私聲明&#34;&gt;版權及隱私聲明&lt;/h2&gt;
&lt;p&gt;使用阿珏部落格二次元圖片隨機API，可能會記錄相關網站、IP、呼叫來源、呼叫數量、呼叫時間、流量等資料，使用本API視為接受本協議。本站擁有對阿珏部落格隨機二次元圖片API的最終解釋權，在某些特定情況下，阿珏部落格有權利禁止你的網站呼叫。&lt;/p&gt;</description>
    </item>
    <item>
      <title>簡約部落格V1.1版本上線 &#43; 一套新主題</title>
      <link>https://en.moejue.cn/zh-hant/posts/51/</link>
      <pubDate>Thu, 30 Nov 2017 09:50:53 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/51/</guid>
      <description>&lt;h4 id=&#34;時隔兩個月簡約部落格系統迎來首次更新並且帶來一套全新的主題&#34;&gt;時隔兩個月，簡約部落格系統迎來首次更新。並且帶來一套全新的主題。&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;修正了預設主題的相關BUG&lt;/li&gt;
&lt;li&gt;修改後台相關細節&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.52ecy.cn/?mr&#34;&gt;預設主題移步預覽&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.52ecy.cn/?post=2&#34;&gt;簡約部落格1.0版本&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;2345截图20171130165426.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/dd8fc833fd4081b914c71bfabe90e383.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;完善了後台seo設定功能&#34;&gt;完善了後台SEO設定功能&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;支援偽靜態了&lt;/li&gt;
&lt;li&gt;設定強制https的訪問&lt;/li&gt;
&lt;li&gt;meta資訊修改&lt;/li&gt;
&lt;li&gt;文章標題在瀏覽器顯示的方案&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;2345截图20171130170102.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/162f36fb4789bf17037cfe255e71162f.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;接下來就是重頭戲&#34;&gt;接下來就是重頭戲&lt;/h1&gt;
&lt;h4 id=&#34;全新的主題檔案姑且命名為dimension-次元&#34;&gt;全新的主題檔案，姑且命名為：&lt;a href=&#34;https://blog.52ecy.cn/?post=4&#34;&gt;Dimension&lt;/a&gt; (次元)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;全特效主題模板&lt;/li&gt;
&lt;li&gt;增加評論框的顏文字表情&lt;/li&gt;
&lt;li&gt;去除側邊欄&lt;/li&gt;
&lt;li&gt;增加滾動返回頂部&lt;/li&gt;
&lt;li&gt;然後就各種特效，自己發掘&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;2345截图20171130171112.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/96483994ba1b2d33ac479461d841ae0f.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;封面圖片為lovelive---μs-不是肥皂-lovelive主題&#34;&gt;封面圖片為lovelive - μ&amp;rsquo;s 不是肥皂 (lovelive主題?)&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;2345截图20171130171855.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/b0b49664b4728ba41a19c226b9c60ef8.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;文章首頁的顯示和文章的詳情頁由於靈感丟失其實是懶就採用了預設主題的樣式&#34;&gt;文章首頁的顯示和文章的詳情頁，由於靈感丟失(其實是懶)，就採用了預設主題的樣式。&lt;/h3&gt;
&lt;h4 id=&#34;嗯差不多就說這些了細節問題使用過程中再一點點修改&#34;&gt;嗯~差不多就說這些了。細節問題使用過程中再一點點修改~~&lt;/h4&gt;</description>
    </item>
    <item>
      <title>萌化二次元-圖庫客戶端發布</title>
      <link>https://en.moejue.cn/zh-hant/posts/46/</link>
      <pubDate>Thu, 12 Oct 2017 02:44:18 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/46/</guid>
      <description>&lt;p&gt;萌化二次元-萌化你的二次元&lt;/p&gt;
&lt;p&gt;軟體大小：1.08MB           軟體語言：簡體中文           軟體類型：原創軟體&lt;br&gt;
軟體類別：二次元類         更新時間：2017-10-12   &lt;br&gt;
軟體授權：免費版            執行環境：XP/Win7/Win8/Win10&lt;/p&gt;
&lt;p&gt;軟體介紹&lt;br&gt;
萌化二次元軟體為我的圖庫客戶端版本 &lt;a href=&#34;http://www.52ecy.cn/gallery&#34;&gt;傳送門&lt;br&gt;
&lt;/a&gt;支援下載圖片到本地，支援一鍵設定桌布。獨享高清無浮水印介面。&lt;br&gt;
下載請注意看關於的提示。&lt;br&gt;
本來設計是有好幾個導航的，還並且支援登入，支援開發者模式，後來嫌麻煩並且沒有這麼多的功能則廢棄了。&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi9nkbe5kj30q70i2qay.jpg&#34;&gt;&lt;br&gt;
.down_link{background:url(&amp;lsquo;&lt;a href=&#34;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg%27&#34;&gt;https://www.52ecy.cn/content/uploadfile/201707/md-bg.jpeg&#39;&lt;/a&gt;) no-repeat 100% 0% #fffdff; border: 1px solid #faf8fb; border-radius: 2px; color: #666; font-size: 14px; margin-bottom: 10px; padding: 5px 20px;}.downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downlink a{text-decoration:none;} .downlink a{text-decoration:none;font-size:15px;} .downlink a:link{color: #ffffff;} .downlink a:visited{color: #ffffff;} .downlink a:hover{color: #ffffff;} .downlink a:active{color: #ffffff;} .downbtn{background: none repeat scroll 0 0 #1BA1E2; border: 0 none; border-radius: 2px; color: #FFFFFF !important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .yanshibtn{background: none repeat scroll 0 0 #d33431; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;text-transform:none;text-decoration:none;} .downbtn:hover,.yanshibtn:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF!important; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;} .downbtn a:hover,.yanshibtn a:hover{background: none repeat scroll 0 0 #9B59B6; border: 0 none; border-radius: 2px; color: #FFFFFF; cursor: pointer; font-family: &amp;ldquo;Open Sans&amp;rdquo;,&amp;ldquo;Hiragino Sans GB&amp;rdquo;,&amp;ldquo;Microsoft YaHei&amp;rdquo;,&amp;ldquo;WenQuanYi Micro Hei&amp;rdquo;,Arial,Verdana,Tahoma,sans-serif; font-size: 14px; margin: -4px 20px 0 0; padding: 8px 30px;}&lt;/p&gt;</description>
    </item>
    <item>
      <title>簡約博客系統1.0版本完成並上線</title>
      <link>https://en.moejue.cn/zh-hant/posts/45/</link>
      <pubDate>Sat, 30 Sep 2017 06:22:28 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/45/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;前言&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不知不覺地，從第一個亞子的部落格系統到emlog，再到現在自己寫的簡約部落格系統，忙忙碌碌地搭建部落格也已經一週年了。&lt;/p&gt;
&lt;p&gt;自己第一階段的目標也算是告一段落了。&lt;/p&gt;
&lt;p&gt;作為一個非營利性的網站，僅僅只是作為一個平常寫寫文字、抒抒情、聊聊天、吹吹牛的地方，我想我會一直做下去的，反正網站這方面的花費並不算太大。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;介紹&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡約部落格，意即：簡單而有品味。它是一款基於PHP語言和MySQL資料庫的功能強大的個人部落格系統(blog)。致力於提供快速、穩定，且在使用上又極其簡單、舒適的部落格服務。安裝和使用都非常方便。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;介面展示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;後台介面樣式仿造emlog 6.0的佈局設計的，採用Bootstrap前端開發框架。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;簡約部落格安裝介面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;简约博客安装程序.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/f826a94934c6dcb7784b1e2c4a18de95.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成功安裝完成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;提示信息.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/8e9d4ad075e94b0eff092cccbec75658.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;後台首頁&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;管理中心.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/d9f67401696147740ea67c07b1c2890a.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;撰寫文章&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;写文章.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/1087dc1db9d979464f49001a206f47e2.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文章管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;文章.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/ba8c6ab02ce0001b30ef4d8f2927b19d.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;標籤管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;标签.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/f03464c194170091d9449e8b50d8d5d9.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分類管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;分类.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/f8801ddf7ef7d168c8b8eb5d00990c60.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;評論管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;评论.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/5d2ed7ea9f8f8a03ab20766fd659bac7.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;導航管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;导航.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/9dbc8933065d25bd415f3b6e604ff8fc.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;友鏈管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;用户.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/d385956a7b6ba405b830c4ef3cdfed9d.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用戶管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;用户.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/be4e494c5908313623d4e72a55f00948.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主題設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;主题.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/ff3146092a45efbd61dcdf2b26a49945.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系統設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;设置.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/5a5d5b1b5d7a325a25f147acee2278c5.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;個人設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;个人设置.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/953a83d16f54dc939e29e61d2e01e275.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;後台登入頁&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;登录.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/712b77fc2fc6a0d325442758135908db.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安裝完成後的預設樣式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;简约博客.png&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/0ed2241d98f15f40f73b1c7af3f87a9a.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手機頁面，沒有設計行動裝置的樣式，預設就是這樣子的&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;手机版.jpg&#34; loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/1028e457a49bac2505c9c682f0a79976.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>我的實驗室</title>
      <link>https://en.moejue.cn/zh-hant/posts/18/</link>
      <pubDate>Tue, 22 Aug 2017 05:43:46 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/18/</guid>
      <description>&lt;p&gt;常來我部落格打發時間的會發現今天我的導航列多了一個欄目&amp;mdash;-實驗室
經常會看到一些大佬的部落格裡有個實驗室的導航，所以我也弄了一個用於學(裝)習(逼)。
這裡頭會放上我自己折騰的一些玩意。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.52ecy.cn/Comic&#34;&gt;我的動漫之路&lt;/a&gt; (已廢棄)&lt;/p&gt;
&lt;p&gt;用於記錄這些年看過的動漫和感想
2017年10月11日: 決定廢棄該頁面，已許久未更新了，主要原因還是懶，又是文字又是圖片的，真的好麻煩，時不時圖片地址還會失效。抽空再弄個簡單的算了。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.52ecy.cn/&#34;&gt;簡約部落格系統&lt;/a&gt; (已完成) 上個月嘀咕著重新寫個部落格，簡單點，不需要什麼複雜的功能，然後就誕生了這個名為簡約部落格的部落格系統。
這個月然後一點都沒寫了。看下個月有沒有時間寫(其實是懶)
模仿emlog 6.0 的前台後台寫的模子。我準備弄兩套看起來很清爽的前台模板，大概的樣子已經想好了，就差實現了-。-
後台的管理帳號密碼都為root
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.52ecy.cn/content/upload/0ed2241d98f15f40f73b1c7af3f87a9a.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>什麼是遞迴？</title>
      <link>https://en.moejue.cn/zh-hant/posts/42/</link>
      <pubDate>Wed, 09 Aug 2017 05:45:16 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/42/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi9qqzftmj30hs0mwta7.jpg&#34;&gt;&lt;br&gt;
圖片來源於網絡&lt;/p&gt;
&lt;p&gt;一開始你肯定覺得讀這句話好繞口，好費力。&lt;br&gt;
其實你用遞迴來讀就很簡單了：&lt;br&gt;
遞迴要有一個終點（小鯉魚）&lt;br&gt;
當遞迴尚未達到終點的時候，函數會反覆呼叫自己。&lt;br&gt;
顯然，輸出「我的小鯉魚」這句話是遞迴終止條件。&lt;br&gt;
那麼寫成程式碼就是:&lt;/p&gt;
&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;
void Recursion(int depth){
printf(&amp;ldquo;抱着&amp;rdquo;);
if (!depth) printf(&amp;ldquo;我的小鲤鱼&amp;rdquo;);
else Recursion(&amp;ndash;depth);
printf(&amp;ldquo;的我&amp;rdquo;);
}
int main(){
printf(&amp;ldquo;吓得我抱起了\n&amp;rdquo;);
Recursion(2);
putchar(&amp;rsquo;\n&amp;rsquo;);
}&lt;/p&gt;
&lt;p&gt;目前我找到的對遞迴最恰當的比喻，就是查字典。我們使用的字典，本身就是遞迴，為了解釋一個詞，需要使用更多的詞。當你查一個詞，發現這個詞的解釋中某個詞仍然不懂，於是你開始查這第二個詞，可惜，第二個詞裡仍然有不懂的詞，於是查第三個詞，這樣查下去，直到有一個詞的解釋是你完全能看懂的，那麼遞迴走到了盡頭，然後你開始後退，逐個明白之前查過的每一個詞，最終，你明白了最開始那個詞的意思。。。&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi9r8xnwyj30k009et8z.jpg&#34;&gt;&lt;br&gt;
箭頭線代表程式實際運行步驟。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi9rou9ucj30k00e8jt9.jpg&#34;&gt;&lt;br&gt;
看了樓上很多答案，大多偏重於描述遞迴的現象，而沒說明為什麼要用遞迴，遞迴的思想到底是什麼。前陣子剛好看了點東西，試著整理下，如有錯誤之處，請不吝指正。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;什麼是遞迴？&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;1. 定義&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;**Wiki [1]：**&lt;strong&gt;Recursion&lt;/strong&gt; is the process of repeating items in a self-similar way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;具體到電腦中去 [2]：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;遞迴&lt;/strong&gt;（英語：Recursion），又譯為&lt;strong&gt;遞回&lt;/strong&gt;，在數學與電腦科學中，是指在函數的定義中使用函數自身的方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;英文的Recursion從詞源上分析只是「re- (again)」 + 「curs- （come, happen）」 也就是重複發生，再次重現的意思。 而對應的中文翻譯 「遞迴」 卻表達了兩個意思：「遞」＋「歸」。 這兩個意思，正是遞迴思想的精華所在。從這層次上來看，中文翻譯反而更達意。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 跟迴圈的區別&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;單看上面wiki的定義，貌似跟通常所說的無限死迴圈很像，他們的區別在哪？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;遞迴是靜中有動，有去有回。&lt;br&gt;
迴圈是動靜如一，有去無回。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;舉個例子，給你一把鑰匙，你站在門前面，問你用這把鑰匙能打開幾扇門。&lt;/p&gt;
&lt;p&gt;遞迴：你打開面前這扇門，看到屋裡面還有一扇門（這門可能跟前面打開的門一樣大小（靜），也可能門小了些（動）），你走過去，發現手中的鑰匙還可以打開它，你推開門，發現裡面還有一扇門，你繼續打開，。。。， 若干次之後，你打開面前一扇門，發現只有一間屋子，沒有門了。 你開始原路返回，每走回一間屋子，你數一次，走到入口的時候，你可以回答出你到底用這鑰匙開了幾扇門。&lt;/p&gt;
&lt;p&gt;迴圈：你打開面前這扇門，看到屋裡面還有一扇門，（這門可能跟前面打開的門一樣大小（靜），也可能門小了些（動）），你走過去，發現手中的鑰匙還可以打開它，你推開門，發現裡面還有一扇門，（前面門如果一樣，這門也是一樣，第二扇門如果相比第一扇門變小了，這扇門也比第二扇門變小了（動靜如一，要么沒有變化，要么同樣的變化）），你繼續打開這扇門，。。。，一直這樣走下去。 入口處的人始終等不到你回去告訴他答案。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTML5 畫布 - 小球碰撞</title>
      <link>https://en.moejue.cn/zh-hant/posts/41/</link>
      <pubDate>Tue, 18 Jul 2017 09:17:31 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/41/</guid>
      <description>&lt;p&gt;HTML5 是全球資訊網的核心語言，屬於標準通用標記語言下超文件標記語言（HTML）的第五次重大修訂。
自 1999 年以來，HTML 4.01 已有許多變化，如今，HTML 4.01 中的一些元素已被棄用，這些元素在 HTML5 中已被刪除或重新定義。為了更好地處理當今的網際網路應用程式，HTML5 添加了許多新元素和功能，例如：圖形繪製、多媒體內容、更好的頁面結構、更好的表單處理，以及一些 API，如拖放元素、定位，包括網頁應用程式快取、儲存、網路工作者等。&lt;/p&gt;
&lt;p&gt;標籤&lt;/p&gt;
&lt;p&gt;描述&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;標籤定義圖形，例如圖表和其他圖像。此標籤基於 JavaScript 的繪圖 API&lt;/p&gt;
&lt;p&gt;效果展示：&lt;/p&gt;
&lt;p&gt;您的瀏覽器不支援 H5&lt;/p&gt;
&lt;p&gt;程式碼部分：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;canvas&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;my-canvas&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;width&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;500px&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;height&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;400px&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;border:1px solid red&amp;#34;&lt;/span&gt; &amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;您的瀏覽器不支援 H5&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;canvas&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;取得畫布物件&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_canvas&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;getElementById&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;my-canvas&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;取得畫筆&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_canvas&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getContext&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2d&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;deawBall&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;設定畫筆顏色&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;fillStyle&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;green&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;開始一個新路徑&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;beginPath&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;畫出小球&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;arc&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;PI&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;關閉路徑&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;fill&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;&lt;span style=&#34;color:#75715e&#34;&gt;//當 fx_x 為 true 時，向 x 軸移動
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;&lt;span style=&#34;color:#75715e&#34;&gt;//當 fx_y 為 true 時，向 y 軸移動
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;speen&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;計時器&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	window.&lt;span style=&#34;color:#a6e22e&#34;&gt;setInterval&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;moveBall()&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;moveBall&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;判斷目前小球的運動方向&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;speen&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;500&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;當達到底部時&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;，&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;向上彈&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;speen&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;當達到頂部時&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;，&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;向下彈&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_x&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;speen&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;400&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;當達到左側時&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;，&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;向右側彈&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;speen&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;當達到右側時&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;，&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;向左側彈&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#a6e22e&#34;&gt;fx&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_y&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;清除畫布&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;重畫&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;my&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_huabi&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;clearRect&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;500&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;400&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#a6e22e&#34;&gt;deawBall&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!-- 取得畫布物件 --&gt; var my\_canvas = document.getElementById(&#34;my-canvas&#34;); &lt;!-- 取得畫筆 --&gt; var my\_huabi = my\_canvas.getContext(&#34;2d&#34;); var x = 50; var y = 50; var r = 20; function deawBall(x,y){ &lt;!-- 設定畫筆顏色 --&gt; my\_huabi.fillStyle = &#34;green&#34;; &lt;!-- 開始一個新路徑 --&gt; my\_huabi.beginPath(); &lt;!-- 畫出小球 --&gt; my\_huabi.arc(x, y, r, 0, 2 \* Math.PI); &lt;!-- 關閉路徑 --&gt; my\_huabi.fill(); } var fx\_x = true;//當 fx_x 為 true 時，向 x 軸移動 var fx\_y = true;//當 fx_y 為 true 時，向 y 軸移動 var speen = 1; &lt;!-- 計時器 --&gt; window.setInterval(&#34;moveBall()&#34;, 10); function moveBall(){ &lt;!-- 判斷目前小球的運動方向 --&gt; if(fx\_x == true){ x += speen; if(x &gt;= 500-r){ &lt;!-- 當達到底部時，向上彈 --&gt; fx\_x = false; } }else{ x -= speen; if(x &lt;= 0+r){ &lt;!-- 當達到頂部時，向下彈 --&gt; fx\_x = true; } } if(fx\_y == true){ y += speen; if(y &gt;= 400-r){ &lt;!-- 當達到左側時，向右側彈 --&gt; fx\_y = false; } }else{ y -= speen; if(y &lt;= 0+r){ &lt;!-- 當達到右側時，向左側彈 --&gt; fx\_y = true; } } &lt;!-- 清除畫布 重畫 --&gt; my\_huabi.clearRect(0, 0, 500, 400); deawBall(x, y); }</description>
    </item>
    <item>
      <title>正式開啟全站HTTPS加密之旅</title>
      <link>https://en.moejue.cn/zh-hant/posts/40/</link>
      <pubDate>Fri, 14 Jul 2017 08:24:36 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/40/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi81mls9mj30j6085t8v.jpg&#34;&gt;&lt;br&gt;
經過有段時間的內測，部落格正式開啟全站 HTTPS。&lt;br&gt;
建站到現在也快一年了，一直想搞個 HTTPS，但是原來的主機不支援 SSL 憑證，這就沒辦法了。&lt;br&gt;
最近主機不也快到期了嘛，於是就換了個支援的伺服器。&lt;br&gt;
之前也一直有人跟我說，部落格時不時的就存取不到了，不知道這次升級了個更好的伺服器，速度和穩定性方面如何了。&lt;br&gt;
然後就是對我的 emlog 版本也進行了升級，雖然只是個 6.0.0 的測試版，但比起之前的 5.X 版本的後台管理介面就好看多了，依舊採用的是 Bootstrap 的 UI 函式庫。&lt;br&gt;
（註：下圖為 emlog 6.0.0 測試版後台管理介面，第三方佈景主題的設定介面不見了，下圖右上角的佈景主題管理是我自行添加上去的）&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi82yp7p7j314d0k7jtz.jpg&#34;&gt;&lt;br&gt;
2、微語不見了&lt;br&gt;
當初 emlog 弄上微語的時候我就感覺那是多此一舉了，弄的很粗糙，但等到大家都熟悉了之後，又去掉了，未免有點。。。&lt;br&gt;
其實這也能用第三方外掛程式寫，給有需要的人去折騰吧。。。反正我也不怎麼發微語(懶)，就將其捨棄了。&lt;/p&gt;
&lt;p&gt;當然想要實現全站的 HTTPS 還是很麻煩的，我為什麼要升級 emlog 呢？原因就在這裡，只有 6.0.0 之後的版本才全面支援 HTTPS 了，要是用之前的版本，那豈不是要改到死。。。&lt;br&gt;
&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi84hfa0kj306m00ujr6.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;除了 emlog，還有就是目前我使用的大前端佈景主題也是不支援 HTTPS 的。&lt;/p&gt;
&lt;p&gt;其實大前端最主要不支援 HTTPS 的地方就是百度的分享功能，在文章頁面使用了百度分享，導致 HTTP 和 HTTPS 混用，可愛的小綠鎖沒了。&lt;/p&gt;
&lt;p&gt;「百度分享到目前為止估計也已經有兩三年沒有更新過了，其官方網站的資訊更新至今還停留在 2012 年的時候。這麼長時間未更新以至於現在百度系很多產品都 HTTPS 化了百度分享仍然還是不支援，對開發者來說很麻煩。如果網站已經啟用全站 HTTPS 則使用百度分享後會出現載入問題，百度分享的核心 JavaScript 會被攔截掉。」&lt;/p&gt;
&lt;p&gt;在網上尋尋覓覓，發現已經有人處理了這個問題，所以我們直接做伸手黨即可。&lt;br&gt;
Github 地址：https://github.com/hrwhisper/baiduShare&lt;/p&gt;
&lt;p&gt;3、預設佈景主題的手機版頁面去掉了(反正很醜)，反正目前佈景主題是響應式的，不需要。&lt;/p&gt;</description>
    </item>
    <item>
      <title>簡單的css3頭像旋轉與3D旋轉效果</title>
      <link>https://en.moejue.cn/zh-hant/posts/39/</link>
      <pubDate>Mon, 10 Jul 2017 07:45:23 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/39/</guid>
      <description>&lt;p&gt;經常會在一些網站看到評論區，評論人的頭像當滑鼠經過會360°旋轉&lt;/p&gt;
&lt;p&gt;先來看一下效果&lt;/p&gt;
&lt;p&gt;.tximg{ height:300px; border-radius:50%; border:2px solid green; /&lt;em&gt;變化規則&lt;/em&gt;/ transition:all 2s; } .tximg:hover{ /* 變化動作 定義2d旋轉，參數填寫角度 */ transform:rotate(360deg); } &lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqjenq0ztrj30hs0hsmyu.jpg&#34;&gt;&lt;/p&gt;
&lt;p&gt;CSS 部分&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;img&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;height&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;border-radius&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;%&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;border&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;px&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;solid&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;green&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;/*變化規則*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;transition&lt;/span&gt;:&lt;span style=&#34;color:#66d9ef&#34;&gt;all&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;img&lt;/span&gt;:&lt;span style=&#34;color:#a6e22e&#34;&gt;hover&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;		變化動作
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;		定義2d旋轉，參數填寫角度
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;	*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;transform&lt;/span&gt;:rotate(&lt;span style=&#34;color:#ae81ff&#34;&gt;360&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;deg&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;HTML 部分 (很簡單，就一張圖片)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;img&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://www.52ecy.cn/log0.png&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3D 旋轉效果 (前端顯示樣式好像還是衝突了-。-)&lt;/p&gt;
&lt;p&gt;.div{ width:300px; height:300px; border:1px solid red; /&lt;em&gt;如果希望看到3D效果，需要在動的這個元素的父元素，增加一個perspective屬性&lt;/em&gt;/ perspective:300px;/&lt;em&gt;3D 元素距視圖的距離，一般與圖片的高度一致效果最佳&lt;/em&gt;/ } .img{ width:300px; height:300px; border:1px solid red; /&lt;em&gt;變化規則&lt;/em&gt;/ /&lt;em&gt;設定旋轉元素的原始點位置&lt;/em&gt;/ transform-origin:bottom; transition:all 2s; } .img:hover{ /&lt;em&gt;變化動作&lt;/em&gt;/ transform:rotateX(60deg); }&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqjenq0ztrj30hs0hsmyu.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>用CSS3繪製iPhone手機</title>
      <link>https://en.moejue.cn/zh-hant/posts/29/</link>
      <pubDate>Mon, 03 Jul 2017 06:09:01 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/29/</guid>
      <description>&lt;p&gt;先上效果圖，先睹為快。(這絕對不是一張圖片。嗯&lt;del&gt;這話怎麼怪怪的&lt;/del&gt;)&lt;/p&gt;
&lt;p&gt;不要問我iPhone幾，因為我也不知道，沒用過，你懂得。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fqi8i9h7fvj308j0fa747.jpg&#34;&gt;&lt;br&gt;
css樣式部分&lt;/p&gt;
&lt;p&gt;#phone{
width:250px;
height:500px;
background-color:#2E2E2E;
border:10px solid #3B3B3B;
margin:100px auto;
border-radius:30px;/&lt;em&gt;設定div元素的圓角邊框&lt;/em&gt;/
}&lt;/p&gt;
&lt;p&gt;#camera{
width:8px;
height:8px;
background-color:#1A1A1A;
border-radius:50%;
border:2px solid #505050;
margin:10px auto;/&lt;em&gt;距離上邊距10px 左右居中&lt;/em&gt;/
}&lt;/p&gt;
&lt;p&gt;#receiver{
width:80px;
height:8px;
border:2px solid #505050;
margin:10px auto;
border-radius:10px;
background-color:#1A1A1A;
}&lt;/p&gt;
&lt;p&gt;#screen{
width:225px;
height:385px;
background-color:#0A0A0A;
border:3px solid #1C1C1C;
margin:10px auto;
}&lt;/p&gt;
&lt;p&gt;#btn{
width:40px;
height:40px;
background:#1A1A1A;
border-radius:50%; /&lt;em&gt;當寬高相同時，則為圓&lt;/em&gt;/
margin:10px auto;
}&lt;/p&gt;
&lt;p&gt;/&lt;em&gt;:before 選擇器在被選元素的內容前面插入內容。&lt;/em&gt;/
#btn:before{
width:22px;
height:22px;
border:2px solid white;
border-radius:30%;
content:&amp;quot;&amp;quot;; /&lt;em&gt;即使插入的內容為空也需要寫，否則不顯示&lt;/em&gt;/
display:inline-block;
margin-top:7px;
margin-left:7px;
}&lt;/p&gt;
&lt;p&gt;HTML部分&lt;/p&gt;
&lt;div id=&#34;phone&#34;&gt;
	&lt;div id=&#34;camera&#34;&gt;&lt;/div&gt;&lt;!-- 攝像頭部分--&gt;
	&lt;div id=&#34;receiver&#34;&gt;&lt;/div&gt;&lt;!--聽筒部分--&gt;
	&lt;div id=&#34;screen&#34;&gt;&lt;/div&gt;&lt;!--螢幕部分--&gt;
	&lt;div id=&#34;btn&#34;&gt;&lt;/div&gt;&lt;!--按鈕部分--&gt;
&lt;/div&gt;
&lt;p&gt;晚些我又加了點玩意上去&lt;/p&gt;
&lt;p&gt;點擊Home鍵可以讓手機亮屏，5秒後又再次熄滅螢幕&lt;/p&gt;</description>
    </item>
    <item>
      <title>瞎折騰-友情連結自助申請</title>
      <link>https://en.moejue.cn/zh-hant/posts/36/</link>
      <pubDate>Thu, 01 Jun 2017 05:59:59 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/36/</guid>
      <description>&lt;p&gt;&lt;strong&gt;關於&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;友情連結自助申請是使用PHP語言開發的一款友情連結自動審核添加系統。&lt;/p&gt;
&lt;p&gt;採用Bootstrap UI庫的柵格系統進行佈局，畢竟咱不是專業的前端，能搞成這樣就不錯了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;功能介紹&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本系統，理論支持所有的網站；支持HTTPS的網站；友鏈需要設在網站的首頁；網址有做url跳轉或者防護的無法檢測；一級域名申請通過後，二級域名無法繼續申請；背景圖片隨機我圖庫中一千張；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;緣由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在我友鏈中看到一博主，是這麼搞的。申請友鏈自動審核添加，瞬間就感覺高大上了許多，又省去自個審核的麻煩，又能及時添加上去。然後自個就瞎折騰了個&lt;/p&gt;
&lt;p&gt;我就在這裝裝逼就好了，源碼有要的可以聯繫我。&lt;/p&gt;
&lt;p&gt;以上如有說錯的地方，你TM來打我啊&lt;/p&gt;
&lt;p&gt;效果如下圖 &lt;a href=&#34;http://www.52ecy.cn/link.php&#34;&gt;友情連結申請地址&lt;/a&gt; &lt;a href=&#34;http://www.52ecy.cn/post-15.html&#34;&gt;友情連結申請須知&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8nttsdqj31980m5wko.jpg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>各種語言的OEP大全</title>
      <link>https://en.moejue.cn/zh-hant/posts/35/</link>
      <pubDate>Fri, 19 May 2017 03:08:23 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/35/</guid>
      <description>&lt;p&gt;&lt;strong&gt;平時要找 OEP 對照確實比較麻煩，我就整理了一下，直接在本文中查看並認識 OEP，&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;或者右鍵點擊圖片儲存到本機     點擊可查看大圖&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;如果對您有幫助的話，請留言評論一下吧~&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VC6 與易語言&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qw5vw6j30f908vmy4.jpg&#34;&gt;&lt;br&gt;
Delphi7&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fqi8qwc0kxj30hf08u0u1.jpg&#34;&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VB5&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1ply1fqi8qw8khaj30f608qjsb.jpg&#34;&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VB6&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qw0u4ej30f608qwfd.jpg&#34;&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BC++&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qw68tpj30f608qgmc.jpg&#34;&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;**VS2008Debug&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qywq8zj30fx0da3zb.jpg&#34;&gt;&lt;/strong&gt;&lt;br&gt;
**&lt;/p&gt;
&lt;p&gt;**VS2008Release&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qwwnntj30c907et93.jpg&#34;&gt;&lt;/strong&gt;&lt;br&gt;
**&lt;/p&gt;
&lt;p&gt;**VS2012-VS2015Debug&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qxkwfgj30c00cx74x.jpg&#34;&gt;&lt;/strong&gt;&lt;br&gt;
**&lt;/p&gt;
&lt;p&gt;**VS2012-VS2015Release&lt;br&gt;
&lt;strong&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi8qx0130j30bf07vdg9.jpg&#34;&gt;&lt;/strong&gt;&lt;br&gt;
**&lt;/p&gt;</description>
    </item>
    <item>
      <title>實現 Emlog 最新評論列表不顯示部落格主的評論回覆</title>
      <link>https://en.moejue.cn/zh-hant/posts/32/</link>
      <pubDate>Sat, 06 May 2017 03:17:23 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/32/</guid>
      <description>&lt;p&gt;部落格主需要經常與訪客互動，部落格主的回复也會作為一條評論顯示在最新評論處，這樣一來，如果部落格主一次回复好幾條評論留言，那麼在最新評論的地方顯示的都是自己的評論，這樣不太好。&lt;/p&gt;
&lt;p&gt;以我目前的 &lt;code&gt;emlog5.3.1&lt;/code&gt; 版本為例：&lt;/p&gt;
&lt;p&gt;打開 &lt;code&gt;include/lib&lt;/code&gt; 目錄下的 &lt;code&gt;cache.php&lt;/code&gt; 文件（這是一個快取函數文件），在其中找到以下程式碼：&lt;/p&gt;
&lt;p&gt;我的是在第179行，如下&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$query &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $this&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;db&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;query&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DB_PREFIX&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment WHERE hide=&amp;#39;n&amp;#39; ORDER BY date DESC LIMIT 0, &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$index_comnum&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;將其修改為：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$query &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $this&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;db&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;query&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM &amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DB_PREFIX&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment WHERE hide=&amp;#39;n&amp;#39; AND poster!=&amp;#39;阿珏&amp;#39; ORDER BY date DESC LIMIT 0, &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;$index_comnum&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;提示：這是一段執行 SQL 語句的 PHP 程式碼，條件是檢測評論用戶的用戶名是不是部落格主的用戶名，是則不顯示該評論到最新評論列表。（也可以透過檢測電子郵件網址的 &lt;code&gt;poster!=&#39;阿珏&#39;&lt;/code&gt;，畢竟我自己回复是不帶電子郵件的，所以只能檢測用戶名了，當然 不要冒充我）&lt;/p&gt;
&lt;p&gt;最後保存文件後，登入 &lt;code&gt;emlog&lt;/code&gt; 的後台更新一下快取，刷新網頁就可以看見效果了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>程式設計師日常中病毒系列</title>
      <link>https://en.moejue.cn/zh-hant/posts/11/</link>
      <pubDate>Thu, 04 May 2017 05:30:48 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/11/</guid>
      <description>&lt;p&gt;DropFileName = &amp;ldquo;svchost.exe&amp;rdquo; 問題解決方案&lt;/p&gt;
&lt;p&gt;事情是這樣的，一朋友發來源碼讓我看下，手殘不小心點到裡頭的一個exe文件，彈出聯網請求，我便迅速關掉，之後發現同目錄多了一個偽裝成系統音樂文件夾的exe可執行文件。我就感覺到事情不妙了，但是又不能確定，隨後刪除這整個文件夾時提示有程式正在使用。&lt;/p&gt;
&lt;p&gt;我就放那暫時沒有管他了，之後的兩三個小時，越發覺電腦響應的速度越慢了，物理內存飆高。就將電腦重啟了。&lt;/p&gt;
&lt;p&gt;之後就想寫寫程式碼，打開一個html的文件，發現大事情了，電腦所有的html都出問題了（如下圖所示）。現在可以確定確實是感染病毒了。&lt;/p&gt;
&lt;p&gt;然後馬上馬不停蹄的再次下載了個360，對電腦進行了全盤查殺（不要問我為什麼下載360），長期裸奔的電腦，難免會來個一兩次的。&lt;/p&gt;
&lt;p&gt;單個測試，發現360只會把病毒程式碼刪掉，不會把這個文件刪掉，但是最下方被註釋掉的部分程式碼就不會刪掉了，到最後我還得要手動再處理一遍，雖然不處理也沒什麼太大問題，但是強迫症，苦逼( ╯▽╰)&lt;/p&gt;
&lt;p&gt;程式碼原理（作用）：
這串script程式碼是一串vbs語言的病毒，中了該病毒後你會發現你的本地所有html文檔打開後都會有這樣一串字符，不僅僅是html文檔，連dll文檔也會被感染。當然這種病毒不要太驚慌，因為他只是起到破壞文件的作用，不會有上傳隱私，盜號等危害。
這串程式碼大概意思就是找到svchost.exe這個進程然後注入數據運行，注入的就是後面的進制程式碼來運行。這種病毒和其他病毒不同的是這種vbs病毒感染能力非常強，html文件一旦被感染，那麼用戶只要打開html文檔病毒就運行上面該程式碼導致病毒直接感染到本地電腦全部html文件和dll文件。
的確，DLL文件也會被感染，導致部分軟體可以正常使用，不過殺毒軟體會報毒。而且你會發現你運行很多常用軟體都會報毒，比如以前常用的迅雷丶酷狗等等一些常用的軟體你再打開的時候居然提示都有病毒，當時我就覺得特別奇怪，迅雷是在官網下載的怎麼可能會報毒呢？所以這裡的原因就是vbs病毒感染了迅雷等軟體的安裝文件中的dll，所以殺毒軟體會不停的報毒，報毒名稱也是vbs腳本病毒。
提示：文中圖片已被外星人劫走&lt;/p&gt;</description>
    </item>
    <item>
      <title>我的二次元線上圖庫</title>
      <link>https://en.moejue.cn/zh-hant/posts/10/</link>
      <pubDate>Wed, 03 May 2017 12:03:33 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/10/</guid>
      <description>&lt;p&gt;我的圖庫-二次元線上圖庫&lt;/p&gt;
&lt;p&gt;經過一段時間的折騰，總算是完工了。&lt;/p&gt;
&lt;p&gt;來不及解釋了，老司機要開車了，趕緊上車。對了，我們是正規車喔&lt;/p&gt;
&lt;p&gt;溫馨提醒：請不要在他人陪同下瀏覽。&lt;/p&gt;
&lt;p&gt;溫馨提醒二：F11瀏覽器全螢幕瀏覽效果最佳。&lt;/p&gt;
&lt;p&gt;做這個頁面有幾個目的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;傳播和普及二次元文化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;好東西要分享。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;因為我喜歡那個世界。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你沒有二次元的她好看。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;以上都是我亂說的，其實是為了自己看方便&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;http://www.52ecy.cn/gallery&#34;&gt;☞☞傳送門&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;可以投稿&#34;&gt;可以投稿.&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;必須是二次元的圖片或素材，不限風格樣式，黑白、Q版、男女都可以&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不可以露出羞羞的部分，那樣有失美感，畢竟咱是正規車。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一次性投稿數量至少在50張以上。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所投稿圖片必須為高清無浮水印圖片。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;所有圖片我都會親自審核一遍的喔^_^&lt;/p&gt;
&lt;p&gt;如果發現不大友善的圖片，可以聯絡我刪除了，畢竟上千張圖片，偶爾還是會審美疲勞的，記得把連結地址記下來喔&lt;/p&gt;
&lt;p&gt;這篇文章會長期和圖庫一併更新，並置頂於相應目錄下&lt;/p&gt;
&lt;p&gt;首次添加了包括《&lt;a href=&#34;http://http://www.52ecy.pw/post-2.html&#34;&gt;&lt;/a&gt;&lt;a href=&#34;http://www.52ecy.cn/post-2.html&#34; title=&#34;愛動漫，只因為我們相信幸福&#34;&gt;愛動漫，只因為我們相信幸福&lt;/a&gt;》這篇文章在內共716張圖片，之後會針對不同的動漫做一期&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2017年5月20日&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;更新了各個系列圖片1918張&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2017年7月2日&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;更新各種(萌)妹子1099張(很久的素材了，都是妹子我能怎麼辦)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2017年8月10日&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;關了幾天的圖庫，又重新折騰了一遍。好在有&lt;a href=&#34;http://sxyz.blog&#34;&gt;亞子&lt;/a&gt;的幫忙.
對伺服器的圖片重新命名，對比hash值，刪除了一丟丟的重複圖片.
增加了對檔案名稱的快取，之後更新圖片就不一一在此闡述了.
更改了頁面的展示樣式.(這塊相信我後期還會再折騰的)
更新了百來張的圖片.&lt;/p&gt;
&lt;p&gt;目前伺服器共 5000+ 張圖片&lt;/p&gt;</description>
    </item>
    <item>
      <title>暴露網站後台地址是一件非常危險的事</title>
      <link>https://en.moejue.cn/zh-hant/posts/21/</link>
      <pubDate>Sun, 30 Apr 2017 07:48:47 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/21/</guid>
      <description>&lt;p&gt;暴露一個網站的後台地址是一件非常危險的事情，比如我網站的後台地址：&lt;a href=&#34;http://52ecy.pw/admin/&#34;&gt;管理登入&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;網路是一個複雜的世界，每個站長還是要學會保護自己。&lt;/p&gt;
&lt;p&gt;emlog 的預設後台路徑是 admin 目錄，非常赤裸裸地暴露了重要的資訊。&lt;/p&gt;
&lt;p&gt;修改預設後台路徑共分三步：&lt;/p&gt;
&lt;p&gt;打開 admin 目錄，找到 globals.php，用 editplus 或者其它編輯器打開，如果你想用記事本打開也行 ^_^ 後果自負&lt;/p&gt;
&lt;p&gt;把資料夾 admin 改成你想要的名字，例如 xxxx 之類的。&lt;/p&gt;
&lt;p&gt;打開 admin/globals.php 這個檔案，現在可能是 xxxx/globals.php 了&lt;/p&gt;
&lt;p&gt;修改第 9 行程式碼：&lt;/p&gt;
&lt;p&gt;define(&amp;lsquo;TEMPLATE_PATH&amp;rsquo;, EMLOG_ROOT.&amp;rsquo;/admin/views/&amp;rsquo;);&lt;/p&gt;
&lt;p&gt;把其中的 admin 改成你新改的名稱 xxxx:&lt;/p&gt;
&lt;p&gt;define(&amp;lsquo;TEMPLATE_PATH&amp;rsquo;, EMLOG_ROOT.&amp;rsquo;/xxxx/views/&amp;rsquo;);&lt;/p&gt;
&lt;p&gt;第三步、刷新後台登入後在導航設定裡將「登入」隱藏，否則點擊會出現 404 錯誤多煩人啊～&lt;/p&gt;
&lt;h3 id=&#34;解決一些後遺症&#34;&gt;解決一些後遺症：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;改變後台路徑後，微語的表情圖片無法顯示，解決方法：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;打開 include/lib/function.base.php，找到&lt;/p&gt;
&lt;p&gt;$t = str_replace($data,&amp;rsquo;&lt;img title=&#34;&#39;.$data.&#39;&#34; src=&#34;&#39;.BLOG\_URL.&#39;admin/editor/plugins/emoticons/images/&#39;.$emos\[$data\].&#39;&#34;/&gt;&amp;rsquo;,$t);&lt;/p&gt;
&lt;p&gt;替換 admin 為 xxxx：&lt;/p&gt;
&lt;p&gt;$t = str_replace($data,&amp;rsquo;&lt;img title=&#34;&#39;.$data.&#39;&#34; src=&#34;&#39;.BLOG\_URL.&#39;xxxx/editor/plugins/emoticons/images/&#39;.$emos\[$data\].&#39;&#34;/&gt;&amp;rsquo;,$t);&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;若後台的個人設定裡沒有上傳新頭像，則微語頭像也無法在前台顯示，解決辦法：&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;打開 t/index.php，找到&lt;/p&gt;
&lt;p&gt;$avatar = empty($user_cache[UID][&amp;lsquo;avatar&amp;rsquo;]) ? &amp;lsquo;../admin/views/images/avatar.jpg&amp;rsquo; : &amp;lsquo;../&amp;rsquo; . $user_cache[UID][&amp;lsquo;avatar&amp;rsquo;];&lt;/p&gt;
&lt;p&gt;替換 admin 為 xxxx：&lt;/p&gt;
&lt;p&gt;$avatar = empty($user_cache[UID][&amp;lsquo;avatar&amp;rsquo;]) ? &amp;lsquo;../xxxx/views/images/avatar.jpg&amp;rsquo; : &amp;lsquo;../&amp;rsquo; . $user_cache[UID][&amp;lsquo;avatar&amp;rsquo;];&lt;/p&gt;</description>
    </item>
    <item>
      <title>網絡劫持之代碼出錯</title>
      <link>https://en.moejue.cn/zh-hant/posts/30/</link>
      <pubDate>Fri, 21 Apr 2017 03:05:56 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/30/</guid>
      <description>&lt;p&gt;昨晚網路不知怎麼就掛了，今早恢復後，繼續我的工作。&lt;/p&gt;
&lt;p&gt;在寫一個html的瀑布流佈局，然後今早打開一看，啥，昨天還好好的瀑布流效果呢[一臉懵逼]&lt;/p&gt;
&lt;p&gt;被劫持時&lt;/p&gt;
&lt;p&gt;尼瑪，什麼噁心的廣告&lt;/p&gt;
&lt;p&gt;右下角彈窗出現機率約為1/10。透過Chrome Developer Tools可以看到：原來的網頁被放置到一個iframe裡，並注入了flash廣告。&lt;/p&gt;
&lt;p&gt;查證瀏覽器地址欄還是正確的域名，沒有被跳轉，說明只能是DNS劫持導致域名返回的內容不是來自網站的頁面，而是被處理過的頁面。&lt;/p&gt;
&lt;p&gt;之後把程式碼扔到vps中測試了一下，沒問題啊&lt;/p&gt;
&lt;p&gt;至此可以確認是營運商DNS劫持並插入廣告，使得返回內容被置於一個iframe中。這樣可能帶來的風險包括：跨域攻擊、鍵盤記錄、https憑證偽造等，比一般釣魚網站更危險。&lt;/p&gt;
&lt;p&gt;無奈的只能去修改一下DNS了&lt;/p&gt;
&lt;p&gt;終於是恢復了&lt;/p&gt;
&lt;p&gt;最後，至於為什麼我的本地檔案的html程式碼也會被劫持呢，因為我呼叫了百度的靜態資源公共庫，導致返回的js並非正確的內容。&lt;/p&gt;
&lt;p&gt;提示：由於文章發表於一年前，圖片已遺失&lt;/p&gt;</description>
    </item>
    <item>
      <title>你訪問的頁面不存在</title>
      <link>https://en.moejue.cn/zh-hant/posts/20/</link>
      <pubDate>Tue, 04 Apr 2017 10:37:13 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/20/</guid>
      <description>&lt;p&gt;做了一個萌萌噠的404 頁面&lt;/p&gt;
&lt;p&gt;好吧，我是偷bilibili的。
&lt;a href=&#34;http://52ecy.cn/404&#34;&gt;http://52ecy.cn/404&lt;/a&gt;（模板更換後就沒用這個了）&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn//large/0072Vf1pgy1fqi9cnb851j30m708sab1.jpg&#34;&gt;&lt;br&gt;
一個頁面 導航頁哈&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://XX.com/&#34;&gt;http://XX.com/&lt;/a&gt; （關閉訪問了）&lt;/p&gt;</description>
    </item>
    <item>
      <title>部落格正式更換為emlog</title>
      <link>https://en.moejue.cn/zh-hant/posts/1/</link>
      <pubDate>Sun, 02 Apr 2017 03:10:54 +0000</pubDate>
      <guid>https://en.moejue.cn/zh-hant/posts/1/</guid>
      <description>&lt;p&gt;由於原部落格系統不夠完善等種種原因，後又因多說服務將於6月1日（兒童節）到期，而給了我一個期限，迫使我不得不更換部落格系統。當然，想過只是更換個評論系統，但一經思索後這絕非易事。所以，現在驕傲地使用了emlog系統。&lt;/p&gt;
&lt;p&gt;網站域名也正式由原來的（z-z-d.pw）更換為現在的（52ecy.pw） 域意：我愛異(二)次元。&lt;/p&gt;
&lt;p&gt;訪問原域名將會直接跳轉到新域名來&lt;/p&gt;
&lt;p&gt;然而數據搬遷工作就此開始了&lt;/p&gt;
&lt;p&gt;4月2日&lt;/p&gt;
&lt;p&gt;開始部落格文章的數據遷移，與刪除過期文章&amp;hellip;..&lt;/p&gt;
&lt;p&gt;4月3日&lt;/p&gt;
&lt;p&gt;當然，重要的評論數據不能丟。開始轉移多說評論至本部落格下，修復亂碼數據&amp;hellip;..&lt;/p&gt;
&lt;p&gt;4月3日晚&lt;/p&gt;
&lt;p&gt;將原部落格 &lt;a href=&#34;https://www.52ecy.cn/Music/&#34;&gt;我的歌單&lt;/a&gt; 移植過來，很喜歡這個功能。&lt;/p&gt;
&lt;p&gt;我的歌單中為實時同步酷狗的音樂，懸浮式歌單為網易雲音樂，同步&lt;a href=&#34;http://www.52ecy.pw/%E6%88%91%E7%9A%84%E6%AD%8C%E5%8D%95-%E9%98%BF%E7%8F%8F%E7%9A%84%E5%8D%9A%E5%AE%A2.html&#34;&gt;我的歌單&lt;/a&gt;Opening列表&lt;/p&gt;
&lt;p&gt;4月5日&lt;/p&gt;
&lt;p&gt;正式開啟全站懸浮式音樂播放器，音樂到哪都不能停。手機用戶需要瀏覽器設置為PC模式才會顯示出播放器。&lt;/p&gt;
&lt;p&gt;花了一點時間才把酷狗的音樂同步了一部分過去，可能是網易那邊沒有這些音樂的原因吧，畢竟多數都是日漫歌曲，而且還不正宗。大部分音樂還會出現解析失敗，播放器與當前主題還不兼容，導致播放器功能丟失，還是推薦去&lt;a href=&#34;https://www.52ecy.cn/Music/&#34;&gt;我的歌單&lt;/a&gt; 聽吧，說多了多少累。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
