PHP 將 CSV 使用第一欄當 Key 來轉成陣列

PHP 想將 CSV 轉成陣列,只要使用 str_getcsv() 即可,不過 CSV 的格式通常不會讓人這麼好過,CSV 常見幾個問題先列在下面:

  1. Big5 編碼 (Excel 存檔成 CSV 和要打開預設都是需要 Big5)
  2. BOM (若有存 UTF-8 的話,大多數會有 BOM)
  3. 分隔符號 (常見 "\t" 和 ","),有時候還會確保整個字串,會用 """ 包起來 (三個 double quote)
  4. 第一行是標題,想直接拿來當 Key 操作

在此篇上述就不解決(其它文章有寫解法,在此不詳述),只解決 3 和 4 的問題。

閱讀全文〈PHP 將 CSV 使用第一欄當 Key 來轉成陣列〉

PHP 建立臨時伺服器 來接收所有參數資訊

PHP 想要臨時建立伺服器,可以使用 php -S 來做,例如:

  • cd /tmp
  • tmp$ php -S localhost:8080

上述會建立一個 http://localhost:8000,就可以抓取 /tmp 所有檔案

若是想要將所有網址都丟到某支 PHP 裡面,可以怎麼做呢?

閱讀全文〈PHP 建立臨時伺服器 來接收所有參數資訊〉

PHP 7.2 安裝 Pecl 的 mcrypt

PHP 7.2 將 mcrypt 移除了,建議是直接使用 Openssl 來取代。

不過有些舊有的加解密演算法,OpenSSL 不支援,所以暫時先找 Pecl 的 mcrypt 安裝回來繼續使用。

在這段時間再來做演算法的轉換,轉換到 OpenSSL 支援的演算法~

閱讀全文〈PHP 7.2 安裝 Pecl 的 mcrypt〉

使用 grep 過濾兩個檔案(不)重複的內容

Linux 常常使用 grep 來找某段字串(可以使用 regex),不過 grep 還有許多強大的功能,例如:

兩個檔案內容,想要把兩個檔案都有的內容撈出來,或者把其中 A檔案 當過濾(Filter)條件,另外 B檔案有出現 A檔案 的內容,全部過濾掉,都可以靠 grep 達成。

閱讀全文〈使用 grep 過濾兩個檔案(不)重複的內容〉