Category: PHP

PHP 安裝 mbstring 模組

在安裝了 phpMyAdmin 後, 如果沒有安裝 PHP 的 mbstring 模組, 會在 phpMyAdmin 看到以下錯誤:找不到PHP內部mbstring編碼模組,沒有這個模組,phpMyAdmin無法準確地分割雙字元文字,而可能產生問題要解決就要安裝 PHP 的 mbstring 模組, 如果 PHP 是用編譯源碼的方法安裝, 只要重新編譯一次, 在 ./configure 時加入以下參數: –with-mbstring –enable-mbstring=all如果是用 Yum 或者 Apt-get 安裝 PHP, 只要安裝好 …

PHP 使用 JSON

PHP 要使用 JSON 很方便, 只要用內建的 json_encode() 及 json_decode() 函式就可以, 以下簡單例子是在 PHP 用 json_encode() 輸出 JSON 資料:上面的第 7 行, 用 json_encode() 函式輸出 $lang 的 JSON 資料, 然後放到 JavaScript 的變數。如果反過來的話, 要將 JSON …

PHP 判斷智能手機及平板電腦

判斷用戶是否用手機訪問網站後, 可以根據用戶的系統, 決定顯示一般大小的網頁, 或者手機及平板電腦的專屬網頁。用 PHP 要判斷用戶是否用流動裝置訪問, 最簡單的方法是通過 $_SERVER 檢查。每部電腦或者每個瀏覽器都有不同的 User Agent, 而 $_SERVER 就是紀錄了用戶的 User Agent, 下面是常用手機的 User Agent 會出現的字串:iPhone: 用 “iPhone” 作為判斷字串.iPad: 用 “iPad” 作為判斷字串.Android: 用 “Android” 作為判斷字串.Windows Phone: …

PHP + MySQL 免費電子書

下面列出一些 PHP 及 MySQL 的免費電子書, 除了入門書籍外, 也有一些是較深入內容的, 但要留意, 全都英文版。Learn PHP, MySQL, CSS, JavaScript and HTML5 PHP 5 Power ProgrammingBeginning Php5 Apache And Mysql Web DevelopmentPHP5 And MySQL BiblePHP and MySQL …

PHP 單引號及雙引號的分別

在 PHP 印出字串, 或者將字串放入函式內, 可以透過單引號或雙引號, 兩者看似差不多, 但分別還是有的。單引號及雙引號在 PHP 裡面最大的分別是, 用單引號時只會印出字串, 但不會印出裡面的變數內容, 以及不會對類似 \t, \r, \n 等特別字串做處理, 例如: 上面會印出 I like $str, 而不會印出 $str 的值, 另一個例子是: 上面的例子不會對新換行符號 \n 做處理, 會直接印出 …

PHP 檢查及轉換字串編碼

mb_detect_encoding() 是用作檢查字串編碼的 PHP 函式, 使用上很方便, 例如:以上程式碼會印出 $str 的編碼, 例如 UTF-8。iconv() 則是用作轉換字串編碼的函式, 例如我想將 BIG5 編碼轉到 UTF-8, 是這樣寫: 將上面的 mb_detect_encoding() 及 iconv() 配合使用, 可以先得出字串編碼, 然後做轉換:

PHP 內建的 Web Server

PHP 從 5.4 開始內建簡單的 Web Server, 主要用作開發環境測試用途。比起以往要安裝 Apache 及 PHP 簡單方便得多, 但不知道跟用 Apache + PHP 的環境差異有多大。啟動 PHP Web Server 指令: php -S localhost:80 -t 執行後便會出現以下信息:PHP 5.4.0 Development Server started at …

PHP: 改變 file_get_contents() User-Agent

PHP 的內建函式 file_get_contents() 除了可以讀取本地檔案外, 也可以擷取遠端網頁, 但有些時候會還到 403 Forbidden 情況, 原因是網站伺服器會讀取 user-agent, 判斷是否瀏覽器正常訪問。一般上網站會用 user-agent 判斷訪客的瀏覽器或 OS, 例如手機訪客所看到的網頁跟 desktop 有所不同。而封鎖像 PHP 的 file_get_contents() 之類的非正常瀏覽 user-agent, 可以減少伺服器的負荷及外部的 DDOS 攻擊。要解決這個問題, 可以在 PHP 執行時定義 user-agent, …

Linux 查看及轉換檔案編碼

Linux 下要查看檔案的編碼有多種方法, 以下會用 file 指令查看檔案的編碼。例如查看 php.ini 檔案的編碼: $ file -i php.ini php.ini: text/plain; charset=us-ascii 上面可以看到 php.ini 檔案是純文字檔, 編碼是 us-ascii, 如果不想輸出檔案名稱, 只要得出檔案類型及結果, 可以加入 -b 參數: $ file -bi php.ini text/plain; charset=us-ascii …