PHP shell_exec() 及 system() 的分別

在 PHP shell_exec() 及 system 都可以執行外部指令, 使用上它們的分別主要來自回傳及輸出。 shell_exec(): 執行外部指令並回傳執行結果, 但不會印出執行結果: 而執行 shell_exec() 另一種方法是用 “" 符號 (按住 Shift 再按 1 那個), 例如 ls -l` 跟 shell_exec(“ls -l”) 是一樣的。 system(): 會執行外部指令並直接印出指令結果, …

自己驗車

車輛出廠滿 6 年要一年驗車一次, 很多人都會請車房幫手, 早幾年我都一樣交給車房驗, 但近年車房幫驗車收費越來越貴, 以我去開的車房為倒, 今年驗車收費承惠 $1,600。兩年前兩始已經自己去驗, 建議各位想慳錢的車主不妨考慮自己去驗車, 尤其架車沒有改裝, 因為真的沒什麼特別, 即使肥佬大不了去車房維修不合格的項目翻驗。 如果想預約驗車, 建議提早預約, 今年我二月中打電話到元朗大昌, 要排到 5 月 1 日 (起初不相信勞工假期可以驗, 但職員話他們那天會開), 轉去屏山豐田預約就可以 4 月 1 日驗, 驗車中心電話可以在以下網址找到: …

Apache 2.4 安裝 mod_evasive

在 Apache 2.4 編譯 mod_evasive 時遇到以下錯誤: mod_evasive20.c: In function ‘access_checker’: mod_evasive20.c:142: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:146: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:158: error: ‘conn_rec’ …

免費防毒軟件

防毒軟件的數量有很多, 有免費及付費的, 那一個較好則看每個人的需要。以下是一些免費防毒軟件, 當中的 AVG 及 Avira 幫朋友裝過多次都很滿意。 AVG AntiVirus Free 2015 AVG 是捷克的防毒軟件大廠, AVG 免費版除了基本的掃瞄、刪除病毒外, 還會確認網頁上的連結是否安全、個人資料保護及電郵保護等, 一直覺得 AVG 的好處是沒有煩人的廣告, 使用系統資源也很少。 Avira Free Antivirus 俗稱 “小紅傘” 的 Avira 同樣是很出名的免費防毒軟件, …

Perl 陣列排序

Perl 要對陣列進行排序, 可以用內建函式 sort 來做, 例如: 以上第 7 行用了 sort 對 @words 進行排序, 輸出結果會是: abc def mmm xyz 但這個 sort 函式是用字串排序的,如果陣列的值是數值,sort 也會根據字串的方式排序,即 123 會排在 23 前面,因為 “1” 是排在 “2” …

Perl DBI 防止 SQL Injection

現在很多地方都用上資料庫系統, 有一些是檢查用戶名稱及密碼的登入系統, 但如果沒有對用戶輸入進行過濾, 會有很多潛在危除, 例如以下程式碼: my $sth = $dbh->prepare(“select * from user where user=’$user’ and pass=’$pass'”); 以上這句 SQL 會檢索 user 資料表, 找出 user 及 pass 與用戶輸入匹配的紀錄, 有回傳便可以登入, 沒有回傳便登入失敗, 這個很容易理解。但如果用戶的輸入包括了一些特定的 …

Perl 複製/重新命名/刪除檔案

在 Perl Scripts 裡面除了可以用系統指令進行檔案處理外, 也可以用 Perl 直接實現, 做法是這樣: 複製檔案 Perl 沒有內建函式可以複製檔案, 但可以透過載入 File::Copy 實現: 上面的語句會將 $old_file 複製到 $new_file. 重新命名檔案 雖然 Perl 內建有 rename 函式可以用, 但它在某些檔案系統不能運作, 所以用 File::Copy 實現會更好: move …

Perl 檢查檔案存取及修改時間

Perl 有很多實用的的檔案運算子, 要檢查檔案的最後存取及修改時間, 可以用 -M 及 -A 實現,在程式內可以便可以找出指定時間沒有被取存或修改的檔案, 以下是簡單的例子檢查檔案是否在 30 日內沒有修改過: 而除了以上兩個外, Perl 還有很多實用的檔案運算子: -e 檔案存在 -z 檔案是空檔案 (大小為 0) -s 檔案不是空檔案 (回值檔案大小) -f 檔案是普通文件 -d 檔案是目錄 -l 檔案是連結 …