PHP 將 IPv4 CIDR subnet IP 展開

PHP 想將 CIDR 的 IP 展開,或者要抓 CIDR 最小與最大值的區間,要怎麼做呢?

閱讀全文〈PHP 將 IPv4 CIDR subnet IP 展開〉

PHP file_get_contents 加送 Header (User-Agent)

PHP 要抓遠端的資料,通常都會使用 CURL,不過常常偷懶會直接拿 file_get_contents 來用

不過 file_get_contents 有時後會遇到需要判斷 User-Agent 等等的,需要加送 Header 資訊,要加送這些資訊要怎麼做呢?

閱讀全文〈PHP file_get_contents 加送 Header (User-Agent)〉

PHP 將 Array 的 Value 依照字元長到短排序

有多個字串想要依序做刪除或取代,但是可能會遇到一些問題,如下案例:

$filter 是不想出現的文字,所以要將 $string 的內容有出現這些文字,都刪除~

<?php
$string = '蘋果多少錢';
$filter = ['多少', '多少錢', '價格', '價錢'];
echo str_replace($filter, '', $string); // 蘋果錢
?>

這樣子結果會出來「蘋果錢」,而不是預期想要的「蘋果」

要怎麼解決呢?

閱讀全文〈PHP 將 Array 的 Value 依照字元長到短排序〉

HTTP Status Code 307、308 的作用

HTTP Status Code 3xx 都是做重新導向的作用:

  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 307 Temporary Redirect
  • 308 Permanent Redirect

此篇主要是討論 307、308 為主,其他就簡單說明一下帶過~~

閱讀全文〈HTTP Status Code 307、308 的作用〉

PHP 查看頁面 程式跑到此處花多久時間

PHP 想要看此 Function 花費多久時間,可以使用 microtime() 前後包起來,範例可見此篇:PHP 測量程式執行時間

想要看頁面的程式執行到此處,花費多久的時間,要怎麼做呢?

閱讀全文〈PHP 查看頁面 程式跑到此處花多久時間〉

PHP 使用 asort、arsort 重新 index key

PHP 使用 asort、arsort 排序後,想要將 key 由 0 或 1 開始重新排序,要怎麼做呢?

  • 註:asort、arsort 會將 Array 的 Value 排序,但是 Array Key(Index) 還是原始的值,若要將 Array Key 的值也修改 0 ~ N,或者 要某個數字開頭 ~ N, 要怎麼做呢?

閱讀全文〈PHP 使用 asort、arsort 重新 index key〉

使用 PHP Datetime Format 計算多久以前的時間

PHP 想要計算日期時間差距幾天、幾小時、幾秒等等,以前都是自己換算 timestamp 後,再來自己除,然後換算成天數、時分秒等等。

現在 PHP DateTime 的物件,可以直接使用 format() 來輸出這些格式,省掉自己算的工~

閱讀全文〈使用 PHP Datetime Format 計算多久以前的時間〉

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

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

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

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