Extended CHM PHP 語法手冊之 DIY
1. Extended CHM 的主要特點 可自定義右鍵菜單 php代碼塊以語法高亮顯示 php代碼塊中的函數(shù)帶有相應(yīng)的函數(shù)手冊鏈接 更清晰的手冊界面 可以自定義手冊的外觀樣式 支持換膚功能 更詳盡的手冊內(nèi)容 附帶非常實用用戶筆記 可以集成于大多數(shù)ide和編輯器 詳細(xì)信息請訪問 <<http://www.php.net/docs-echm.php>>
2. 為什么要 DIY 不知為什么, 這么好的東東在 php 的官方網(wǎng)站上已經(jīng)很久沒有更新了 (最新的官方 版本是 2003.9.6 發(fā)布的). 尤其是在 php5 發(fā)布以后更是有不少內(nèi)容都查不到, 所 以就只能發(fā)揚 DIY 精神, 來自己制作了. ^_^
3. 預(yù)備知識 cvs 客戶端的使用. linux 環(huán)境下的基本操作, 以及軟件的編譯與安裝.
4. 軟件需求 cvs客戶端軟件: 我們要通過 php 官方網(wǎng)站的 cvs 服務(wù)器來取得 phpdoc 的最新版本. windows 環(huán)境下推薦使用 wincvs中文版 <<http://www.8848software.com/wi ncvs/>> unix 陣營的操作系統(tǒng)一般都自帶 cvs 客戶端, 你可以在命令行下直接鍵入 "cvs version" 來檢查 cvs 是否安裝, 如果沒有安裝請從 <<http://www.cvshome.org>> 中下載最新版 本的 cvs 客戶端 Windows 操作系統(tǒng): 需要在 windows 系統(tǒng)中運行 Microsoft Html Help Workshop 來生成 chm 文件 你也可以在linux下運行wine來模擬windows Microsoft Html Help Workshop 微軟發(fā)布的用語生成 chm 文件的工具 <<Microsoft Html Help Workshop>> Linux 操作系統(tǒng): 我們需要在此進(jìn)行手冊和一些必備軟件包的編譯安裝, 你也可以使用其他的 unix 陣營的系統(tǒng), 或者干脆用 cygwin, vmware 等軟件來在 Windows 下模擬一個 linux 環(huán)境 PHP4.0或以上版本: 編譯和生成 chm 文件時均需要用到 php 所以你需要再 windows 和 linux 環(huán)境下 都安裝 php. 本文所使用的環(huán)境: 兩臺pc, 分別裝有 redhat 9 以及 windows 2000 professional
5. 開始 DIY 首先, 在 linux 機(jī)中 安裝 OpenJada 和 OpenSP 進(jìn)入 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 服務(wù)器中取得 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 --------------------------------------------------------------------------------
設(shè)置編譯參數(shù)
代碼:-------------------------------------------------------------------------------- $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'"/> --------------------------------------------------------------------------------
然后繼續(xù)執(zhí)行編譯操作,
代碼:-------------------------------------------------------------------------------- $make chm_xsl --------------------------------------------------------------------------------
待編譯結(jié)束以后, 我們需要取得最新的 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 機(jī)上
代碼:-------------------------------------------------------------------------------- tar -czvf phpdoc.tar.gz ./htmlhelp --------------------------------------------------------------------------------
到這里, 需要再 linux 平臺上執(zhí)行的操作就完成了 現(xiàn)在起操作轉(zhuǎn)到windows環(huán)境中 首先, 解壓縮剛才生成的phpdoc.tar.gz 由于我所取得的版本編譯后所生成的一些文件中, 相關(guān)函數(shù)的鏈接存在錯誤, 所以需要修改一下 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("&raquo;","»",$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 變量值設(shè)置為 Html Help Workshop 的安裝目錄, 存盤退 出 將 php.exe 所在目錄加入 path 環(huán)境變量中. 在 "運行" 中鍵入 cmd 進(jìn)入控制臺模式,并進(jìn)入 phpdoc.tar.gz 的釋放目錄
代碼:-------------------------------------------------------------------------------- cd htmlhelp make_chm.bat --------------------------------------------------------------------------------
待其執(zhí)行結(jié)束后, Extended CHM 版的 php 語法手冊就生成完畢了. 儲存在 htmlhelp/release 目錄下 再下載 <<php_manual_prefs.exe>>, 并保存在手冊目錄 執(zhí)行此程序即可對手冊中的右鍵菜單, 所用皮膚等進(jìn)行設(shè)置了. 設(shè)置完成后, 雙擊 php_manual_en.chm 即可瀏覽手冊了.(出處:Viphot)
|