PHP 取得 Group ID 並設定檔案 Group 權限

PHP 在 Linux 的 Web 和 Cron 要執行的環境,常常會遇到權限不足的情況。

Debian / Ubuntu Linux 的 Apache / Nginx 使用的 User 是 www-data,通常這個 user 都是無法登入的,所以會建立一個帳號來另外存取執行,要怎麼確保權限都是可以讀寫的呢?

閱讀全文〈PHP 取得 Group ID 並設定檔案 Group 權限〉

PHP 移除最後一個「/」路徑後面的文字

PHP 遇到要處理 URL path 的問題,例如下述:

  • $path = '/images/theme/firefox/logo.png'; → 想要變成 /images/theme/firefox
  • $path = '/images/theme/firefox'; → 想要變成 /images/theme

這本身是很簡單的問題,但是花了點時間處理,純粹紀錄一下沒睡飽的犯蠢過程

很多事情想一想、睡飽再做,可以省掉不少時間~

閱讀全文〈PHP 移除最後一個「/」路徑後面的文字〉

Python 判斷檔案的語系編碼 UTF-8、Big5

Python3 要開啟、讀取檔案時,若不是 UTF-8,會需要輸入檔案的語系編碼,Python 會自動都轉換成 UTF-8 做操作。

如下範例:(現在會遇到 Big5 的,大多數都是 Windows 的 CSV)

  1. with open(filename, encoding='Big5') as csvline:
  2. rows = csv.reader(csvline, delimiter=',')

但是有些來源是 Big5、有些是 UTF-8,就需要偵測語系編碼,要怎麼做呢?

閱讀全文〈Python 判斷檔案的語系編碼 UTF-8、Big5〉

PHP、Python CLI 如何直接寫到 STDERR

PHP、Python CLI 寫 Script,常常會包入 Shell Script 裡面,但是通常都會被導向 > STDOUT

想要安插 Debug message 秀在畫面上(常會遇到一些 Warn,但是那些 Warn 不知道在哪些參數才會發生),所以乾脆寫 STDERR 來看。

閱讀全文〈PHP、Python CLI 如何直接寫到 STDERR〉

Python TCP Socket Server 遇到 socket 沒有 AF_INET 問題

Python 要建立 TCP 的 Socket server 臨時存取用,但是卻遇到下述錯誤:

  • AttributeError: partially initialized module 'socket' has no attribute 'AF_INET' (most likely due to a circular import)

閱讀全文〈Python TCP Socket Server 遇到 socket 沒有 AF_INET 問題〉

Python3 Pandas DataFrame 的 Append 屬性無法使用解法

Python 的 Pandas 是蠻常使用的,在 Pandas 2.0 後,Append 屬性被拿掉了,要使用 concat 來取代,會出現下述錯誤:

  • pd dataframe append AttributeError: 'DataFrame' object has no attribute 'append'

閱讀全文〈Python3 Pandas DataFrame 的 Append 屬性無法使用解法〉

Excel 連續序號 刪減可自動修正

Google Spreadsheets、Excel 都很常會遇到,第一列會是 1 ~ n 的數字,然後右邊再繼續動態增加,或者最上層那列,會往右 1 ~ n 欄的增加。

  • 橫列增加
    • 1 2 3 4 5 n
    • d1 d2 d3 d4 d5 dn...
  • 直列增加
    • 1 d1
    • 2 d2
    • 3 d3
    • n dn

閱讀全文〈Excel 連續序號 刪減可自動修正〉