Tag: PHP
只要建立一個 Whatsapp api 的連接, 按下連結後便可以發送 Whatsapp 短信, 例如: 按下以上連結, 便會出現 Whatsapp API 的視窗, 如果用安裝有 Whatsapp 的手機打開, 便會自動開啟 Whatsapp, 對方的電話是 PHONENO, 短信內容是 testing. 但如果要把一段較長的短信以換行的方式分開, 我試過用 \n, \r, \r\n 等都不成功, 找了一下資料, …
LAMP 是 Linux + Apache + MySQL + PHP 的縮寫, 但從 RHEL / CentOS 7 開始已經不會內置 MySQL, 改為使用 MariaDB, MariaDB 使用上與 MySQL 相同, 舊有的 MySQL 資料庫也可以直接升級使用, 這裡也會示範在 Rocky Linux …
對於測試用途為主的主機, 或者供應商很常需要在主機安裝多個不同的 PHP 版本, 該不同的 PHP 版本可以同時執行。 用 PHP-FPM 執行的 PHP 環境有很多優點, 除了可以安裝多個 PHP-FPM 外, 也可以對不同的 domain/subdomain 設定不同的 PHP-FPM pool, 給予不同的設定或權限。 以下文章會在 Rocky Linux 上安裝不同的 PHP 版本, 並配置到 Apache …
mPDF 是透過 PHP 建立及編輯 PDF 檔的模組, 支援 UTF-8 直接使用 HTML 寫入. 如果在 mPDF 寫入中文或其他亞洲雙字字文字, 如果沒有確設定編碼, 可能會出現以下錯誤: HTML contains invalid UTF-8 character(s) 要解決這個錯誤, 只需在使用 $mpdf->WriteHTML() 或 $mpdf->WriteFixedPosHTML() 前, 用 iconv() …
ImageMagick 是一套開源的圖像處理工具, 可以在指令模式下建立, 編輯, 轉檔圖像檔案, 支援超過 200 種圖像格式, 例如JEPG, GIF, PNG, TIFF 等. 如果在 PHP 要使用 ImageMagick, 除了在 PHP 執行 ImageMagick 外, 最好的方法也是安裝 PHP 的 ImageMagick 模式 — Imagick. …
LAMP 是 Linux + Apache + MySQL + PHP 的縮寫, 但從 RHEL / CentOS 7 開始已經不會內置 MySQL, 改為使用 MariaDB, MariaDB 使用上與 MySQL 相同, 舊有的 MySQL 資料庫也可以直接升級使用, 這裡也會示範在 RHEL 8 …
PHP 5.6 開始加入了預設編碼的設定, 預設是使用 UTF-8, 這對於大多數網站都不會有問題, 但對於一些還是使用 Big5 編碼的老舊網站, 沒有設定好便會出現亂碼。 如果要整台伺服器設定, 開啟 php.ini 後, 找到 default_charset 一行: default_charset = “UTF-8” 改成: default_charset = “Big5” 然後需要重新啟動 httpd. 如果不能改 php.ini, 便要根據主機是使用 …
在伺服器進行 PHP 設定, 最直接的方法是編輯 php.ini 檔案, 如果是使用 mod_php 的情況下, 可以用 php_admin_value 或 php_admin_flag, 在 Apache 對個別目錄或 VirtualHost 設定不同的 PHP 參數, 或者使用 .htaccess 設定更可以不用重新載入 httpd 修改 PHP 設定。 但如果是使用 PHP-FPM …
當網站的 CSS 及 Javascript (.css 及 .js) 作出修改後,這些更新可能不會立即呈現及訪客,這是因為瀏覽器為了提高開啟網站的速度,會將 .js 及 .css 檔儲存在快取內,下次進入網站時不會重新載入所致。 網站訪客可以清除網站的快取然後重新載入,便會看到新內容。但網站管理員總不能要求每個訪客這樣做,需要在網頁的層面解決。 一個簡單的解法是在 HTML 的 Meta Tag 加入控制快取的指示,例如: 但這個方法很多時都不會長時間有效。 另一個較簡單實用的方法是在檔名後面加上一個 GET 變數,這個 GET 變數可以是日期時間,也可以是版本號,例如: 當下次修改 CSS 或 JS …
有一台原本使用 Apache 的 Web Server 換成 Nginx 後, 其中一個 PHP 的上傳檔案程式遇到錯誤, 原本以為是 PHP 的 max_execution_time 或 max_upload_filesize 設定太小出問題。 後來在 Nginx 的 Log 找到以下錯誤: client intended to send too large …