Extended CHM PHP 語法手冊之 DIY
1. Extended CHM 的主要特點
可自定義右鍵菜單
php代碼塊以語法高亮顯示
php代碼塊中的函數帶有相應的函數手冊鏈接
更清晰的手冊界面
可以自定義手冊的外觀樣式
支持換膚功能
更詳盡的手冊內容
附帶非常實用用戶筆記
可以集成於大多數ide和編輯器
詳細信息請訪問
<<http://www.php.net/docs-echm.php>>
2. 為什麼要 DIY
不知為什麼, 這麼好的東東在 php 的官方網站上已經很久沒有更新了 (最新的官方
版本是 2003.9.6 發布的). 尤其是在 php5 發布以後更是有不少內容都查不到, 所
以就只能發揚 DIY 精神, 來自己制作了. ^_^
3. 預備知識
cvs 客戶端的使用.
linux 環境下的基本操作, 以及軟件的編譯與安裝.
4. 軟件需求
cvs客戶端軟件:
我們要通過 php 官方網站的 cvs 服務器來取得 phpdoc 的最新版本.
windows 環境下推薦使用 wincvs中文版
<<http://www.8848software.com/wi
ncvs/>>
unix 陣營的操作系統一般都自帶 cvs 客戶端,
你可以在命令行下直接鍵入 "cvs version" 來檢查 cvs 是否安裝,
如果沒有安裝請從
<<http://www.cvshome.org>> 中下載最新版
本的 cvs 客戶端
Windows 操作系統:
需要在 windows 系統中運行 Microsoft Html Help Workshop 來生成 chm 文件
你也可以在linux下運行wine來模擬windows
Microsoft Html Help Workshop
微軟發布的用語生成 chm 文件的工具
<<Microsoft Html Help
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:[email protected]:/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
將如下代碼加入文件尾部</xsl:stylesheet>一行之上, 並存盤退出
代碼:--------------------------------------------------------------------------------
<xsl:template match="collabname" mode="titlepage.mode">
<xsl:apply-templates />
</xsl:template>
<xsl:param name="chunker.output.doctype-system"
select="'http://www.w3.org/TR/html4/loose.dtd'"/>
<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD HTML
4.01 Transitional//EN'"/>
--------------------------------------------------------------------------------
然後繼續執行編譯操作,
代碼:--------------------------------------------------------------------------------
$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 '<a href="'.$fname1.'"><b>'.$m[1].'()</b></a>';
}elseif(file_exists("html/".$fname2)) {
return '<a href="'.$fname2.'"><b>'.$m[1].'()</b></a>';
}else{
return '<a href="#" onclick="return false;"><b>'.$m[1].'()</b></a>';
}
}
--------------------------------------------------------------------------------
然後在文件中找到如下這段代碼
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('<a href="index.html"><b>', "/").'(\w+)\(\)'.preg_quote('</b></a>', "/").'/is';
$content = preg_replace_callback($reg_fix,'fix_function_link',$content);
$reg_fix = '/'.preg_quote('<a href=""><b>', "/").'(\w+)\(\)'.preg_quote('</b></a>', "/").'/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_prefs.exe>>, 並保存在手冊目錄
執行此程序即可對手冊中的右鍵菜單, 所用皮膚等進行設置了.
設置完成後, 雙擊 php_manual_en.chm 即可浏覽手冊了.(出處:Viphot)