PHP function alias 方法別名

開發PHP專案的時候,有時會有更改 function 名稱的需求,也許當時是趕時間草率命名,也許是拼錯字,但隨時間推移,更改 function 的名字就變得很可怕,可能一改造成一連串的錯誤,但不改又很礙眼,感覺很痛苦,為避免錯誤連換爆的這個狀況,思考是否可以用「別名」的概念,讓新的 function 跟舊的 function 都可以做一樣的事情,在不發生錯誤的情況下慢慢汰除舊名字,隨著版本的演進直至所有舊名都被移除,最後再將「別名」移除

最簡單的做法

stackoverflow Jon 提供了一個最簡單的做法

https://stackoverflow.com/a/23426311

不過此做法存在缺陷,在 class 中呼叫會找不到 function

以下是目前最好解法

由 stackoverflow Nathan Crause 提出

https://stackoverflow.com/a/2877219/6784662

做了一點小修改

龜毛了一點,我習慣別名再右方,為維持這習慣我把上面方法做了一點小修改,更好理解

[……]

閱讀更多

XAMPP Mysql error Plugin ‘FEEDBACK’ is disabled.

不知道怎麼回事,今天打開我本機的開發環境的 XAMPP ,無法啟動 MySQL ,因次開始排除錯誤,也將這個過程紀錄,如您也遇到一樣情況,可以參考本文,希望也能解決您的問題

開啟 XAMPP 出現一堆錯誤的紅字

檢視錯誤日誌

由 XAMPP 控制面板開啟 mysql error log, 紅框這一段似乎是錯誤的原因

修復錯誤

詳細原因其實也不是很清楚,網路上找到下列這篇文章,似乎是最簡單解決這個問題,本文是依照下列這篇文章進行問題排除,不過有點不太一樣就是,有興趣可參考原文
xampp mysql and phpmyadmin dont work

備份資料檔案

如果您的資料已經有資料了,強烈建議備份下來,再來的動作可能會造成原有資料遺失,作危險操作時,花一些時間備份,養成好習慣

資料檔案預設目錄:C:\xampp\mysql\data

複製 backup 目錄檔案覆蓋於 data 目錄

預設 backup 目錄:C:\xampp\mysql\backup

複製 backup 目錄檔案覆蓋於 data 目錄

注意!! 若您 資料庫有使用 innodb 在複製 backup 中的檔案時,不可以複製 ibdata1 這個檔案,同時也確保 ibdata1 存在您的 data 目錄中,ibdata1 刪除了,將無法恢復您的資料庫

如果您已誤刪了 ibdata1 這檔案了,請參考此文章,恢復您的 innodb
recover mysql database from ibdata1

重啟資料庫

覆蓋檔案完成,重啟 MySQL,太好了,沒有報錯,接著開啟 phpMyAdmin 驗證一下是否正常

開啟 phpMyAdmin

噴了一些錯誤,但應該是密碼問題,剛覆蓋 backup 的檔案後,如果您的 phpMyAdmin 或其他程式都有設定資料庫登入密碼的話,需要重新設定密碼

MySQL 重設密碼

Resetting MySQL Root Password with XAMPP on Localhost

開啟 XAMPP 面板,按下右側的 Shell 按鈕

輸入下列這段指令更改資料庫 root 密碼

成功開啟 phpMyAdmin

[……]

閱讀更多

Chrome 另存圖片 .jfif to .jpg

作者:丫丫爸爸學電腦
原文:https://kknews.cc/zh-tw/news/mkgrkz2.html

瀏覽器另存圖片的時候,發現保存的圖片格式是「.jfif」,而不是常見的.jpg或.png格式,以這種格式保存下來的圖片大部分軟體都不認識。那麼「.jfif」是什麼格式呢?丫丫爸爸今天就給大家分享下在「Win10」系統中如何把默認的圖片保存格式由「jfif」格式轉化為「jpg」格式。

今天丫丫爸爸要說的就是保存網頁圖片的問題,大家有沒有發現,當你在Win10系統下瀏覽網頁,並在網絡上下載的圖片時,默認格式是「jfif」?

結果圖片保存完都成為下面的樣子了:

會發現好多軟體都不支持這種圖片格式。

解決方法

首先按鍵盤的「Win鍵+R鍵」,彈出「運行」對話框,輸入「regedit」,然後點回車進入註冊表編輯器。

然後,按照下面的路徑一步步進入相應的項目,也可以直接把下面的路徑粘貼到地址欄里:
HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg

再然後,右面的列表框中有個「Extension」選項,雙擊這一行點開,在「編輯字符串」對話框中,把「jfif」改為「jpg」,最後點確定就可以了。

[……]

閱讀更多

三竹簡訊串接 – API 網址

三竹簡訊官方API文件,API Call 的網址如下:,

https://{三竹網域名稱}/b2c/mtk/SmSend

還以為真的是直接用他官網的網域,太天真了,弄半天結果不是,最後透過客服得知三竹簡訊目前帳號分為,個人帳號 (二站)、企業帳號 (三站),Call 的網址不同,call 的網址分別為下面兩個網址:

API 網址

企業帳號 (三站)
https://smsapi.mitake.com.tw/api/mtk/SmSend?

個人帳號 (二站)
http://smsb2c.mitake.com.tw/b2c/mtk/SmSend?

簡單測試API

[……]

閱讀更多

Windows 刪除已信任的https憑證、管理憑證

游標移到左下角按右鍵,是「右鍵」喔,選執行

輸入「certmgr.msc」按確定紐

開啟憑證管理的面板,左側是憑證類別,右邊是憑證,選取憑證後可以在上方控制列按下紅色叉叉的圖標刪除,也可以點擊滑鼠右鍵選刪除,來刪除已信任的憑證

參考資料:

[……]

閱讀更多

XAMPP設定Https開發環境,一鍵openssl自簽SSL憑證,配置 Apache Localhost

開發者通常都會在本地端電腦建立一個 localhost 的伺服器來模擬遠端生產環境或測試環境的狀態,進行相關程式碼的開發、測試,而 https 安全網站目前成為主流,為盡可能接近遠端伺服器,勢必本地端伺服器也需要安裝SSL憑證,筆者本地開發環境使用的是 XAMPP,所以本文主要是議介紹 XAMPP 的 https 配置,本文主要是「方便」開發為目地,而非「安全」為目地,介紹如何開發環境中設定SSL憑證,這僅適用於開發環境,切記 ! 不適用於正式生產環境。

本文 XAMPP版本為:XAMPP 7.4.8 ( Windows 64bit )

openssl 自簽憑證

本文使用的 XAMPP 版本已自帶 openssl 所以無需再另外安裝 openssl

準備工作

在 XAMPP 中的 Apache 根目錄中建立一個名為 ssl 子目錄,這目錄用來存放之後產生出來的證書檔案,目錄絕對路徑可能長得像下方這樣

複製 openssl 配置檔範例

openssl 自簽憑證需要一個配置檔,熱心網友 Adrian Suter 在 Github 上已經寫好配置檔範本,我們在剛建立的 ssl目錄中,建立一個名為 cert-template.conf 的檔案,並貼上下方範本網址中的代碼

複製 make-cert.bat 範例

熱心網友 Adrian Suter 在 Github 把 openssl 簽發憑證的流程寫成 Windows bat 檔案,簡化操作流程,克服指令障礙,非常佛心,如果配置檔配置正確,Enter,Enter,Enter一鍵就可以完成指定域的SSL憑證簽發,非常方便,開啟下方連結,並於上述的 ssl 目錄中建立一個名為 make-cert.bat 的檔案,並貼上下方網址中的代碼

執行make-cert.bat

執行 make-cert.bat 前,請確保 cert-template.conf 已同一目錄

執行 make-cert.bat,要求輸入要簽發的網域( 以 example.com 為例 )
輸入 example.com 按 Enter

再來會要求填入一些相關資料,不理它直接Enter、Enter、Enter下去就好,沒有輸入會帶預設值,因為本文介紹只是方便開發用的,不是正式環境使用,所以這些資訊並不必是真實的

當看到請按任意鍵繼續的文字,代表已經完成,下圖就是完成的截圖

此時 ssl 目錄就會多一個 example.com 的子目錄

開啟 example.com 目錄,裡面應該會有 server.crt 及 server.key 這兩個檔案,這就是憑證檔案,如果看到這兩個檔案,恭喜~憑證簽發完成! 這做法非常簡單

Windows 安裝憑證

openssl 自簽憑證沒有信任組織背書,仍會被瀏覽器標示為不安全,需要在 Windows 手動安裝信任此憑證,打開 server.crt 如下圖,按下「安裝憑證」按鈕

會跳出憑證匯入精靈,存放位置選「本機電腦」,下一步

選擇「將所有憑證放入以下存放區」,按憑證存放區的「瀏覽」按鈕

選擇「受信任的根憑證授權單位」,確定

下一步

按「完成」按鈕以完成憑證匯入

看到此彈跳視窗即匯入完成

設定 httpd-vhosts.conf

檔案位置:C:\xampp\apache\conf\extra\httpd-vhosts.conf
設定 XAMPP 的虛擬主機設定

設定 Hosts

檔案位置:C:\Windows\System32\drivers\etc
在檔案最下方加入下方這一行,將網域指向本機,流量就不出站了

完成設定

完成上述動作,再來就是要測試是否可以正常運行,在這之前先完成幾個步驟

  1. Ping 網域是否正確指向 127.0.0.1
  2. 重新啟動 XAMPP
  3. 暫時關閉防毒軟體及防火牆
  4. 清除 Windows DNS快取
  5. 清除瀏覽器 DNS 快取
  6. 瀏覽器關閉後重新開啟

最後打開瀏覽器,開啟所設定的網域,正常網址前方應該是不會出現「不安全」字樣,應該會出現鎖頭圖標,點擊網址前方鎖頭圖標,會顯示「已建立安全連線」的小視窗,如果有看到代表已經設定成功囉

如果沒看到也可以再嘗試一下多清除幾次瀏覽器的快取,或關閉瀏覽器再開啟,我發現瀏覽器這部分似乎有快取,有時設定成功卻仍顯示不安全,所以可以特別去注意這部分,若還是不行就重新操作一遍,或瀏覽文章下方參考連結參考原文

檢視或刪除已信任憑證

當我們完成階段性任務,不需要再使用開發環境某一個域的憑證時,可以參考下面這篇來刪除憑證

Windows 刪除已信任的https憑證、管理憑證

參考資料

https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/
https://a091234765.pixnet.net/blog/post/403840004
https://gist.github.com/turtlepod/3b8d8d0eef29de019951aa9d9dcba546#file-cert-conf
https://www.cnblogs.com/kidsitcn/p/10561979.html
https://odan.github.io/2017/10/29/installing-an-ssl-certificate-under-apache-xampp.html

[……]

閱讀更多

Clear Chrome DNS Cache

快取這種東西對一般人而言,能加快網頁開啟速度何嘗不好,對於開發人員來說可能是場噩夢,開發時常遠端環境及本地端模擬環境中切換,DNS快取常令我們不知道我正在瀏覽的是遠端環境還是本地端環境,即便我已經清除了 Windows 快取,Ping IP 也顯示正確了IP了,結果還是瀏覽到遠端的網站,後來發現 Chrome 也有 DNS 快取,本篇教大家如何用最簡單的方式清除 Chrome DNS 快取。

在Chrome網址列貼上下方網址,如下圖,就會出現 Clear host cache 按鈕,按下去就對了

https://superuser.com/a/611712

[……]

閱讀更多

MySQL 圖解 LEFT JOIN, INNER JOIN,RIGHT JOIN 的差異及範例

C.L. Moffatt 發表 Visual Representation of SQL Joins 用圖示來解釋各種 SQL Join 非常清楚,本文僅節錄MySQL常用的三種Johin方式,說明其中差異及提供使用範例,主要也是讓我自己清楚這幾種 Join 的用法,有更多Johin 需求的朋友可於文章結尾找到原文網址。

Inner Join

該查詢將返回左表(表A)中所有與右表(表B)中具有匹配記錄的記錄。

範例如下:

Left Join

無論這些記錄與右表(表B)中是否匹配,查詢都返回左表(表A)中的所有記錄及與(表B)匹配的記錄。

Right Join

無論這些記錄與左表(表A)中是否匹配,查詢都返回右表(表B)中的所有記錄及與(表A)匹配的記錄。

本文作者:C.L. Moffatt
原文網址:Visual Representation of SQL Joins

[……]

閱讀更多