Category: PHP

phpize 編譯個別 PHP 模組

當編譯 PHP 之後, 發覺需要加入一些額外的模組, 在不重新編譯 PHP 的情況下, 可以用 phpize 編譯單一模組, 在 php.ini 加入模組的 .so 便可以。以下會以 GD 為例, 用 phpize 單獨編譯 GD 模組。在編譯 GD 模組前, 先用 YUM 安裝 GD 所需的相關套件, 包括 …

RHEL / CentOS 7 管理記錄檔 — Journald

RHEL 及 CentOS 原來使用 rsyslog 管理記錄檔, 在 RHEL / CentOS 7 開始除了保留了 rsyslog 外, 還加入了 journald。systemd 是一個負責開啟, 停止及監察進程狀態的服務, 所有經 systemd 啟動的服務, systemd 會將包括正常啟動, 啟動或結束時的問題經由 journald 寫入紀錄檔, 而 journalctl 則是用作查看 journald …

RHEL / CentOS 7 安裝 PHP Memcached 緩存

Memcached 是一套開放源碼的分散式記憶體快取系統, 目前已經有多個網站使用。在網站的應用上, 由於資料庫的查詢多數是讀取, Memcached 先將資料庫加以緩存, 那便可以減少資料庫的讀取, 從而增加效率。Memcached 在 PHP 另一個常用的地方是用作緩存 session。下文會示範在 CentOS 7 安裝 Memcached 及 Memcached 的 PHP 模組。1. 安裝 Memcached在 RHEL 及 CentOS 十分簡單, 可以直接用 YUM 安裝: …

PHP 檢查 IP 地址所屬國家及組織

在網上很多工具可以檢查 IP 所屬國家, 大多數都是付費工具, 免費版 IP 的覆蓋率較低, 及只包含基本國家資訊。今天介紹的是 IP Geolocation API, 雖然它也有收費版, 但這只適用於商用量用戶, 免費版提供每日 1,000 個查詢, 及不支援 SSL, 其他內容與付費版是一樣的。使用上十分簡單, 只要用 GET 請取網頁內容就可以, 例如 Google 的 DNS IP 也址 8.8.8.8:http://ipinfo.io/8.8.8.8/json以上網頁會回傳所有關於 IP …

解決 PHP UTF-8 網頁亂碼

如果以 UTF-8 編碼的 PHP 網頁在瀏覽器出現亂碼, 一般都是設定錯誤編碼所致, 要解決分別可以透過 HTML 的 meta tag, PHP Header 及 Apache 進行設定, 以下是解決方法:HTML Meta Tag:在 HTMl 的 及 加入以下這行, 向瀏覽器宣告使用 UTF-8 編碼:PHP Header:另一個方法是用 PHP 的 header() …

PHP 用 CURL 上傳檔案

PHP 的 CURL 除了可以傳送 POST 請求外, 還可以用作上傳檔案。方法與傳送 POST 請求差不多, 只要宣告以 multipart/form-data 模式傳送, 以及在傳送的值前面加上 “@” 符號, 後面接著是檔案的絕對路徑, 以下是例子:上面例子會將 /path/to/file.txt 上傳到 http://localhost/path.php, 上傳欄位名稱是 upload_file.

PHP 用 CURL 傳送 POST 及 GET 表單

PHP 要擷取遠端網頁或者傳送 GET 請求可以用 file_get_contents() 函式做, 但如果要發送 POST 請求, 例如自動填寫表單等, 就可以用 CURL 實現。以下 PHP 的 CURL 模組發送 POST 及 GET 的方法:PHP 傳送 GET 請求 如果只是傳送 GET 請求, 用 file_get_contents() 會較簡單, …

PHP 使用 FTP 上傳及下載檔案

一般 PHP 的上傳檔案方法, 是將上傳的檔案放到暫存目錄, 再複製到指定的目錄, 雖然操作上方便, 但問題是儲存上傳檔案的目錄必需要有寫入權限 (CHMOD 777), 而且不能上傳到遠端伺服器。要解決以上問題, 我覺得較簡單的方法是用 PHP 內建的 FTP 功能, 例如現時 WordPress 的更新功能, 也是透過 FTP 操作。以下會介紹在 PHP 連接到 FTP 上傳及下載檔案的方法:FTP 下載檔案 FTP 上傳檔案 PHP 的 …