Category: PHP

強制瀏覽器每次重新載入 CSS, JS 檔

當網站的 CSS 及 Javascript (.css 及 .js) 作出修改後,這些更新可能不會立即呈現及訪客,這是因為瀏覽器為了提高開啟網站的速度,會將 .js 及 .css 檔儲存在快取內,下次進入網站時不會重新載入所致。網站訪客可以清除網站的快取然後重新載入,便會看到新內容。但網站管理員總不能要求每個訪客這樣做,需要在網頁的層面解決。一個簡單的解法是在 HTML 的 Meta Tag 加入控制快取的指示,例如: 但這個方法很多時都不會長時間有效。 另一個較簡單實用的方法是在檔名後面加上一個 GET 變數,這個 GET 變數可以是日期時間,也可以是版本號,例如: 當下次修改 CSS 或 JS 後,在網站的 …

JavaScript 取得 Unix timestamp

UNIX Timestamp 在計算時間或日期上很有用, 在 JavaScript 可以用以下方法取得現在的 UNIX Timestamp.Date.now() 可以取得現在 UTC timestamp 的 milliseconds (毫秒, 即千分之一秒)。只要將這個數值除 1000, 即可得到 UNIX Timestamp 的格式:

升級到 PHP 7.2 後的效能表現

近幾年的伺服器都是使用 CentOS 預設的 PHP 版本, 而 CentOS 7 預設的 PHP 版本仍是 5.4, 而 PHP 7 對於性能提升也是相當明顯的。近期將本網的 PHP 版本升級到 PHP 7.2, 以下是用 RRDTool 監察的 Load Average 數據:在四月至六月間是使用 4GB RAM 的 VPS, …

PHP 開啟及關閉錯誤訊息輸出

要開啟或關閉 PHP 的錯誤訊息有幾種方法, 分別是在 php.ini 內設定, httpd.conf 及 .htaccess 設定, 或者在 PHP 程式內設定, 以下是各種方法的設定方法。1. php.ini在 php.ini 一般預設路徑在 /etc/php.ini, 在 php.ini 內找到 display_errors, 設定為 On 是開啟錯誤信息, Off 是關閉輸出:另一個可以設定的選項是 error_reporting, 它可以設定輸出那些錯誤提示, 常用的設定有:修改 …

PHP 用 curl 取代 file_get_contents()

PHP 要擷取其他網頁的資料,最方便的方法是用 file_get_contents() 函式,以下程式碼即可完成:如果使用量不高,那麼用 file_get_contents() 沒什麼問題,但如果 PHP 擷取其他網頁內容的頻率很高,便建議改用 curl 完成了。因為 curl 的效率比 file_get_contents() 高,以下是 curl 的例子:

PHP mail() 設定 Return-Path

在 PHP 上使用 mail() 發送電郵,如果沒有正確設定 Return-Path, 發出的郵件會使用系統的主機名稱,例如 apache@hostname.server, 以下是程式碼:在收到的郵件會看到寄件者是 from@example.com, 但當按下回覆時,會使用系統的主機名稱,除了回覆地址名,也會有部郵 email server 拒收,會在 email server 的紀錄檔出現 “invalid sender MX”。原因是郵件的 Return-Path 並沒有使用 PHP 的 Return-Path 設定,郵件的 source 可以看到:Return-Path: Delivered-To: 要解決只要在 …

JavaScript 搜尋並取代字串

在 JavaScript 做搜尋並取代字串可以用 replace() 來做, 例如:上面的 string 變數是 “Hello Microsoft!”, 而變數 result 會變成 “Hello Linux!”以上做法很簡單, 但最大的問題是, 只會取代第一個符合條件的字串, 例如:上面只會將第一個 “Microsoft” 取代為 “Linux”, 第二個不會取代, 要將全部字串取代, 可以用 regular expression 做, 有以下兩種寫法可以用:方法一: 方法二:以上兩種寫法都會將字串內所有 “Microsoft” …

PHP 查詢 IP 所屬國家

要查詢 IP 所屬國家, 一般上會用 IP 資料庫查詢, 網上也有一些網站可以免費查詢, 但如果想在自己的 PHP 程式, 查詢 IP 所屬國家, 便需要下載一些 IP 轉國家的資料庫, 有付費及免費。另一個較簡單方便的做法, 是使用 API 查詢, 以下會示範使用 freegeoip.net 的免費服務查詢 IP 所屬國家的方法。freegeoip.net 把供 CSV, XML 及 JSON …

解決 PHP 錯誤 – Allowed memory size exhausted

PHP 其中一個常見的錯誤 “Allowed memory size exhausted”,這是由於執行的 PHP 程式使用的記憶體超出 PHP 設定的限制,要解決可以很簡單地修改 php.ini 檔案內的 memory_limit 選項即可。首先開啟 php.ini,在 RHEL 及 CentOS 用 yum 安裝的 PHP,預設路徑是 /etc/php.ini: # vi /etc/php.ini 找到 “memory_limit” 的一行,將原來的 128M …