解決 Fatal error: Call to undefined function exif_read_data()

上傳圖片遇到下面問題:

Fatal error: Call to undefined function exif_read_data()

支援版本

官方文件 PHP4 以上就支援此 exif_read_data()

如果已符合版本需求還是會出現此錯誤,可以試試看下面的解決方法。

解決方法:

  1. 找到你的 PHP.ini 文件
  2. 找到下面這一行
  3. 把前方的分號移除,如果找不到這行,可以直接複製下列文字,貼於 PHP.ini 裡
  4. 重新啟動Apache

[……]

Read more

PHP getimagesize() 尺寸不對,直的變橫的

明明就是直的,你程式有問題,還是眼睛有問題

主要原因是圖片有帶一個旋轉的參數 Orientation
原本是橫的圖片,因為有帶 Orientation 這個參數所以在windows打開看起來是直的
但骨子裡他是橫的圖片,PHP也覺得是橫的,但客戶覺得明明就是直的,是你程式有問題
好吧!! 所以在PHP圖片輸出前把它轉回來
假設圖片轉了90度,就用PHP再旋轉-90度把它轉回來,就跟客戶看的一樣是直的了

可參考下列程式:

參考:[……]

Read more

檔案文件 big5 轉 Utf-8 解決亂碼問題

網頁文件中的文字雖然看起來都一樣,但編碼不同可能會造成亂碼問題

假設我在head宣告文件為UTF-8,但網頁文件卻是big5編碼,可能會造成亂碼問題,網頁設計多少都會遇到過這種狀況,這時需要將文件轉換至正確的文件編碼。

使用Notepad++檔案編碼互轉

Notepad++是有名的免費軟體 (繁體中文)

以Notepad++開啟文件


上圖紅框處為目前文件編碼


上方工具列:編碼 > 轉換至 UTF-8 碼格式 ( 檔首無BOM )

“檔首無BOM”,BOM是在檔案開始會有幾個隱藏字元,
如果不確定BOM功能,建議選擇”檔首無BOM”的 UTF-8


紅框處確認轉換後編碼,在按下:檔案 > 儲存檔案

顯示正常囉囉!!

網頁造成亂碼的原因[……]

Read more

MariaDB vs MySQL versions 版本兼容性比較表

版本兼容性比較表 Replication Compatibility

MySQL 移植 MariaDB 相容性可參考下表

Slave↓ Master→
MariaDB-5.5
MariaDB-10.0
MariaDB-10.1
MariaDB-10.2
MySQL-5.6
MySQL-5.7
MySQL-8.0

MariaDB-5.5
Ok
No
No
No
No
No
No

MariaDB-10.0
Ok
Ok

Ok

MariaDB-10.1
Ok
Ok
Ok

Ok

MariaDB-10.2
Ok
Ok
Ok
Ok
Ok
Ok

MySQL-5.6

X
X
X

MySQL-5.7

X
X
X

MySQL-8.0

X
X
X

MariaDB versus MySQL – Compatibility

[……]

Read more

PHP 比較版本、檢查版本 – 適用字串的版號

為什麼要比較版本

利用 version_compare() 來比較版本

請注意:

在為您的項目分配版本號時,請記住,WordPress使用PHP version_compare() 函數來比較插件版本號。因此,在您發布新版本的插件之前,您應該確保這個PHP函數認為新版本比舊版本“更大”。例如,1.02實際上大於 1.1。

其他使用範例

是用於字串版號

檢查PHP版本

 

 [……]

Read more

WHMCS 7.x.x 繁體中文語言包

您還再慢慢翻嗎?時間就是金錢

WHMCS不支援繁體中文,翻譯需要耗費大量時間及成本,

網路上找得到的版本很不齊全,版本也不盡相容。

所以我們開啟繁體中文贊助計畫。訂閱贊此計畫,

於更新時會自動電子郵件給您,為您的WHMCS維持最新的更新版本

就是這麼簡單

 

 

支援5.XX

支援7.3.0(當前版本)

WHMCS 繁體中文語言包下載

 

安裝步驟:

1.解壓縮附件

2.將lang目錄複製,覆蓋並取代WHMCS安裝目錄的lang目錄即可。

非常簡單

 

注意:

執行更新前請先妥善備份您的檔案[……]

Read more

PHP 解決 Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()

set_magic_quotes_runtime()於 PHP5.3後棄用

在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告,而在PHP4.0+已被棄用,所以PHP4.0之後不會有set_magic_quotes_runtime()這function,所以會跳出下列錯誤:

官方說明:
http://php.net/manual/en/function.set-magic-quotes-runtime.php

解決方法:

移除所有 set_magic_quotes_runtime() 程式碼。

替代方案:

https://vector.cool/php-deprecated-function-set_magic_quotes_runtime-is-deprecated-%e8%a7%a3%e6%b1%ba%e6%96%b9%e6%b3%95/[……]

Read more

PHP include vs require

PHP include 與 require 到底有什麼差異阿?

相信 include() 跟 require() 大家並不陌生,都是用來引入文件,如果都一樣又為何要分成 include() 與require()呢,其實還是有些差異拉,我把在網路上看到的差異做成了比較表,方便大家選擇最適合的。

 

include

require

用到時才載入
一開始就加載

檔案發生錯誤的話,會顯示警告,不會立刻停止
會顯示錯誤,立刻終止程式,不再往下執行。

需要處裡文件檢查、速度相對較慢
速度比較快

適合動態態載入檔案
適合靜態檔案

適合用來引入動態的程式碼
適合用來引入靜態的內容

可以用在迴圈

有返回值
-[……]

Read more

PHP in_array comparing two arrays

PHP in_array() 無法比較兩個陣列,這邊採取替代的作法,使用array_intersect(),取得值的交集

參考資料:

[……]

Read more