手冊
Extended CHM PHP 文法手冊之 DIY
1. Extended CHM 的主要特點
可自訂右鍵菜單
php代碼塊以文法高亮顯示
php代碼塊中的函數帶有相應的函數手冊連結
更清晰的手冊介面
可以自訂手冊的外觀樣式
支援換膚功能
更詳盡的手冊內容
附帶非常實用使用者筆記
可以整合於大多數ide和編輯器
詳細資料請訪問
<>
2. 為什麼要 DIY
不知為什麼, 這麼好的東東在 php 的官方網站上已經很久沒有更新了 (最新的官方
版本是 2003.9.6 發布的). 尤其是在 php5 發布以後更是有不少內容都查不到, 所
以就只能發揚 DIY 精神, 來自己製作了. ^_^
3. 預備知識
cvs 用戶端的使用.
linux 環境下的基本操作, 以及軟體的編譯與安裝.
4. 軟體需求
cvs用戶端軟體:
我們要通過 php 官方網站的 cvs 伺服器來取得 phpdoc 的最新版本.
windows 環境下推薦使用 wincvs中文版
<ncvs/>>
unix 陣營的作業系統一般都內建 cvs 用戶端,
你可以在命令列下直接鍵入 "cvs version" 來檢查 cvs 是否安裝,
如果沒有安裝請從
<> 中下載最新版
本的 cvs 用戶端
Windows 作業系統:
需要在 windows 系統中運行 Microsoft Html Help Workshop 來產生 chm 檔案
你也可以在linux下運行wine來類比windows
Microsoft Html Help Workshop
微軟發布的用語產生 chm 檔案的工具
<Workshop>>
Linux 作業系統:
我們需要在此進行手冊和一些必備軟體包的編譯安裝,
你也可以使用其他的 unix 陣營的系統,
或者乾脆用 cygwin, vmware 等軟體來在 Windows 下類比一個 linux 環境
PHP4.0或以上版本:
編譯和產生 chm 檔案時均需要用到 php 所以你需要再 windows 和 linux 環境下
都安裝 php.
本文所使用的環境:
兩台pc, 分別裝有 redhat 9 以及 windows 2000 professional
5. 開始 DIY
首先, 在 linux 機中
安裝 OpenJada 和 OpenSP
進入 linux 控制台
代碼:--------------------------------------------------------------------------------
$mkdir /home/phpdoc
$cd /home/phpdoc
$wget "http://prdownloads.sourceforge.net/openjade/openjade-1.3.2.tar.gz"
$wget "http://prdownloads.sourceforge.net/openjade/OpenSP-1.5.1.tar.gz"
$tar -zxvf *.tar.gz
$cd openjade-1.3.2
$./configure
$make
$make install
$cd ../OpenSP-1.5.1
$./configure
$make
$make install
$cd ../
--------------------------------------------------------------------------------
然後, 我們要從 php 的官方 cvs 伺服器中取得 phpdoc 的最新版本
代碼:--------------------------------------------------------------------------------
$export CVSROOT=:pserver:cvsread@cvs.php.net:/repository
$cvs -z9 checkout phpdoc
$cd phpdoc
$cvs update -dP -D"December 31, 2002 11:00pm" xsl
$cvs up -A xsl/version.xml xsl/docbook/html/chunker.xsl
--------------------------------------------------------------------------------
設定編譯參數
代碼:--------------------------------------------------------------------------------
$autoconf
$./configure --with-chm=yes --with-lang=en
--------------------------------------------------------------------------------
這時, 要做一些小小的修正
用編輯器開啟 /home/phpdoc/phpdoc/xsl/htmlhelp-db.xsl
在此檔案中搜尋 "@DOCBOOKXSL_HTML@",
將其替換為 "./docbook/html/chunk.xsl", 並存檔退出
然後再開啟 /home/phpdoc/phpdoc/xsl/html-common.xsl
將如下代碼加入檔案尾部一行之上, 並存檔退出
代碼:--------------------------------------------------------------------------------
select="'http://www.w3.org/TR/html4/loose.dtd'"/>
--------------------------------------------------------------------------------
然後繼續執行編譯操作,
代碼:--------------------------------------------------------------------------------
$make chm_xsl
--------------------------------------------------------------------------------
待編譯結束以後, 我們需要取得最新的 php 鏡像網站列表, 和使用者筆記檔案
代碼:--------------------------------------------------------------------------------
$cd htmlhelp
$wget "http://www.php.net/include/mirrors.inc"
$wget "http://www.php.net/backend/notes/all.bz2"
$bunzip2 all.bz2
cd ../
--------------------------------------------------------------------------------
可以把產生的檔案打個包, 傳至 windows 機上
代碼:--------------------------------------------------------------------------------
tar -czvf phpdoc.tar.gz ./htmlhelp
--------------------------------------------------------------------------------
到這裡, 需要再 linux 平台上執行的操作就完成了
現在起操作轉到windows環境中
首先, 解壓縮剛才產生的phpdoc.tar.gz
由於我所取得的版本編譯後所產生的一些檔案中, 相關函數的連結存在錯誤,
所以需要修改一下 htmlhelp/filter_files.php 檔案
先在其頭部加入如下代碼
PHP代碼:--------------------------------------------------------------------------------
//fix functions link error
function fix_function_link($m) {
$fname1 = 'function.'.strtolower(str_replace('_','-',$m[1])).'.html';
$fname2 = 'function.'.strtolower(str_replace('_','.',$m[1])).'.html';
if(file_exists("html/".$fname1)) {
return '
'.$m[1].'()';
}elseif(file_exists("html/".$fname2)) {
return '
'.$m[1].'()';
}else{
return '
'.$m[1].'()';
}
}
--------------------------------------------------------------------------------
然後在檔案中找到如下這段代碼
PHP代碼:--------------------------------------------------------------------------------
// Read in the contents of the source file
$content = join("", file("$HTML_SRC/$filename"));
--------------------------------------------------------------------------------
將其改為
PHP代碼:--------------------------------------------------------------------------------
// Read in the contents of the source file
$content = join("", file("$HTML_SRC/$filename"));
$content = str_replace("»","»",$content);
$reg_fix = '/'.preg_quote('
', "/").'(\w+)\(\)'.preg_quote('', "/").'/is';
$content = preg_replace_callback($reg_fix,'fix_function_link',$content);
$reg_fix = '/'.preg_quote('
', "/").'(\w+)\(\)'.preg_quote('', "/").'/is';
$content = preg_replace_callback($reg_fix,'fix_function_link',$content);
--------------------------------------------------------------------------------
存檔後, 再將 "htmlhelp\local_vars.php.src" 重新命名為
"htmlhelp\local_vars.php"
編輯 "htmlhelp\local_vars.php",
將其中的 $HELP_WORKSHOP 變數值設定為 Html Help Workshop 的安裝目錄, 存檔退
出
將 php.exe 所在目錄加入 path 環境變數中.
在 "運行" 中鍵入 cmd 進入控制台模式,並進入 phpdoc.tar.gz 的釋放目錄
代碼:--------------------------------------------------------------------------------
cd htmlhelp
make_chm.bat
--------------------------------------------------------------------------------
待其執行結束後, Extended CHM 版的 php 文法手冊就產生完畢了.
儲存在 htmlhelp/release 目錄下
再下載
<>, 並儲存在手冊目錄
執行此程式即可對手冊中的右鍵菜單, 所用皮膚等進行設定了.
設定完成後, 雙擊 php_manual_en.chm 即可瀏覽手冊了.