[PHP] 使用兩個問號 (Null Coalescing Operator) 簡易判斷並賦值

在 PHP 5.3 可以透過 ?: 運算子簡單的判斷並賦值

$foo = $bar ?: $baz;

上面的運算式等同:

$foo = $bar ? $bar : $baz;

但是在沒有宣告變數之前仍然會出現錯誤訊息。而 PHP 7.0 開始支援兩個問號 (??) 判斷並賦值,而且不用事先使用 isset() 判斷變數是否存在:

$username = $_GET['user'] ?? 'nobody';

上面的運算式等同:

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

而且可以串一個以上的判斷:

$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

References

發表留言

Google 雲端硬碟同步免安裝版 Backup and Sync from Google Portable

Google 備份與同步處理 是由 Google 開發的一個檔案備份與同步軟體,可以將電腦、手機、相機和 SD 卡等裝置的資料夾中的檔案上傳並儲存在 Google 雲端硬碟,也可以在多部設備進行同步,保持檔案的一致性。

Read more “Google 雲端硬碟同步免安裝版 Backup and Sync from Google Portable”

發表留言

使用 EaseUS Data Recovery Wizard Free 進行資料救援

硬碟發展至今已有63年的歷史,史上第一顆硬碟是出現在西元1956年,由IBM製造的350RAMAC,體積有兩個冰箱這麼大,但容量只有5MB,而現在的硬碟容量已經遠遠超過這個數字,當今主流硬碟體積也只有3.5吋或2.5吋大,甚至也有基於快閃記憶體(NAND Flash)為主儲存媒介的產品誕生。儘管儲存技術已經非常進步,但我們仍無法完全避免資料遺失,如果只是不小心誤刪,有不少簡單的方法可以輕鬆復原;但如果是因為儲存裝置的壽命、分割區損毀等問題造成資料無法讀取,對於一般人來說可能就必須尋求專業資料救援業者的幫助,而且資料救援的費用通常都不會太便宜。如果很不幸的你剛好碰到了這個問題,建議可以先試試看 EaseUS 易我科技所開發的免費資料救援軟體 – Data Recovery Wizard。

軟體名稱:EaseUS Data Recovery Wizard Free
開發商:EaseUS 易我科技
軟體下載:Windows版 / Mac 版

Read more “使用 EaseUS Data Recovery Wizard Free 進行資料救援”

發表留言

在 MySQL 指令列模式下不輸入帳號密碼直接登入伺服器

在指令列模式下使用 mysql 指令登入伺服器時,正常情況下需要輸入帳號密碼進行登入,在安全考量上是很合情合理的事情;但是如果頻繁的進行相關作業(例如使用 mysqldump 個別匯出不同資料庫時),每一次都要輸入帳號密碼,會是一件令人困擾的事情。雖然在複製貼上的方法的情況下參數後面接上帳號與密碼就可以只輸入一次,但這種方式會讓帳號密碼曝光在 process monitor;在這種情況下,我們可以直接在家目錄建立一個 .my.cnf 檔進行一次性設定,之後無須輸入帳號密碼就可以登入伺服器。

[mysql]
user = calos
password = 123456

[mysqldump]
user = calos
password = 123456

其中,[mysql] 這一節的設定是用在使用 mysql 指令,而 [mysqldump] 則是在使用 mysqldump 時使用的。更多的設定可以參考 MySQL 官方說明文件

如果是將設定檔置於多人共用伺服器時,基於安全性考量,建議在作業完成後移除設定檔,或是使用 GnuPG 這類加密工具將設定檔進行加密,需要使用時再進行解密。


References:

發表留言

使用 GnuPG 對檔案加密與解密

使用多人共用的伺服器時不應該將機敏性檔案長置在上面,但是每次需要使用時都要重新上傳的話又有點麻煩。如果需要多次使用機敏性檔案,將檔案加密後供日後使用不失為一個好方法。能夠實現的工具非常多種,這邊使用 GnuPG 作為例子。

安裝

GnuPG 在 Ubuntu 為預設安裝,如果未安裝的話執行以下安裝指令即可。

sudo apt install gnupg -y

加密

使用 gpg -c 進行加密,會跳出提示輸入密碼

# 新增一個文字檔
echo 'caloskao.org' > my-file.txt

# 對文字檔加密
gpg -c my-file.txt
gpg: gpg-agent is not available in this session
Enter passphrase:

輸入兩次密碼後會產生額外一個加密後的檔案,檔名以 .gpg 結尾

-rw-rw-r--  1 calos calos  13 2019-09-17 11:05:02 my-file.txt
-rw-rw-r--  1 calos calos  94 2019-09-17 11:05:12 my-file.txt.gpg

解密

使用 gpg -d 進行解密

gpg -d my-file.txt.gpg
gpg: AES encrypted data
gpg: gpg-agent is not available in this session
Enter passphrase:

解密完成後會提示檔案已解密,並顯示解密後的檔案內容

gpg: encrypted with 1 passphrase
caloskao.org

可以搭配參數 -o 直接將解密後的內容輸出至檔案

gpg -o my-file.txt.decryped my-file.txt.gpg
gpg: AES encrypted data
gpg: gpg-agent is not available in this session
gpg: encrypted with 1 passphrase
cat my-file.txt.decryped
caloskao.org

參數 -c-d對稱式加解密,如需追求更強的加密強度,請使用 非對稱式加密(亦稱為公開金鑰加密)。


References:

發表留言