PHP mb_convert_encoding() 指定轉換編碼順序

PHP 轉換編碼會使用 iconv() 或 mb_convert_encoding(), 現在比較常用的是 mb_convert_encoding().

一般使用上, 如果有多種編碼, 可以用下述寫法:

<?php $string = mb_convert_encoding($sring, "UTF-8", "cp950,gb2312,gbk"); ?>

閱讀全文〈PHP mb_convert_encoding() 指定轉換編碼順序〉

PHP Heighlight 語法 與 phps 啓用 (Apache2)

PHP 要秀程式碼, 除了現成的 JavaScript Plugin 等外掛外, 可以使用下述幾種方法:

  • PHP Highlight 的 Function - highlight_string()
  • 或 PHP Highlight 的 Function - highlight_file() 搭配此篇(How do I enable .php file to be color highlight) - 使用 .htaccess + highlight_source.php
    .htaccess如下述:

    Action php-source /var/highlight_source.php
    AddHandler php-source .phps

    highlight_source.php 如下述:
    <?php highlight_file($_SERVER{"DOCUMENT_ROOT"} . $_SERVER{"PATH_INFO"}); ?>

  • 另一個更簡單的方法, 啟用 phps. (*.phps 會自動 Heiglight code, 但是要注意避免把 Source code 不小心公開出去)

閱讀全文〈PHP Heighlight 語法 與 phps 啓用 (Apache2)〉

PHP dba 基本操作 程式範例

PHP 的 DBA(Database (dbm-style) Abstraction Layer) 可以接 Oracle Berkeley DB.

這邊有相容的 DB Layer 列表: PHP: Requirements - Manual

註: 此篇文章的範例使用 db4, 確定 PHP 5.3.3 以上可以正常執行, 不能執行的話, 可以換成 dbm 先測試看看. 🙂

閱讀全文〈PHP dba 基本操作 程式範例〉

用 PHP 抓取下星期二的 Timestamp - strtotime()

日期的轉換只要把日期轉成 Timestamp, 就可以使用 date() 轉成自己想要的格式.

strtotime() 很常用, 通常都是把 "2012-02-12 22:11:10" 丟進去, 轉成 Timestamp.

最近想要抓某個日期, 或者是上週、下週、上個星期一、下個星期二.. 等等的時間, 才發現 strtotime() 強的很過份. XD

官方文件詳見下述:

閱讀全文〈用 PHP 抓取下星期二的 Timestamp - strtotime()〉

PHP 的 Interactive shell 模式

臨時要測個簡單的程式片段 或 Function, 一般都會於 CLI 寫來跑一跑, Interactive 模式 可以邊寫邊測試~ (互動模式, 寫完一行就 Compile 一行)

而 PHP CLI 的模式有兩種差異: (執行方法: $ php -a, 說明可見: PHP: Interactive shell)

  • Interactive shell 比較像是 互動式, 有問有答的執行程式.
  • Interactive mode enabled 則是輸入一整個區塊的程式碼, Ctrl-D 執行.

閱讀全文〈PHP 的 Interactive shell 模式〉