自己编译CHM形式的PHP手册
作者:J_ai糖 | 来源:互联网 | 2017-06-26 07:32
文章标题:自己编译CHM形式的PHP手册。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
一、准备工作
下载并安装Microsoft(r) HTML Help Workshop,笔者按默认安装,即装在 c:\Program Files\HTML Help Workshop\;
配置好 php.ini,加入 iconv 或 mbstring 扩展的支持;
下载 PHP html 手册,并解压缩到 d:\phpchm\html 目录,当然你也可以放到其他目录,在本文中笔者以 d:\phpchm 作为根目录;
下载 chm 手册生成脚本文件,当然你得先装好 CVS 客户端,操作如下:
D:\cvsroot>cvs -d :pserver:cvsread@cvs.php.net:/repository checkout phpdoc-zh
拷贝 d:\cvsroot\phpdoc-zh\chm 目录下所有文件到 d:\phpchm\chm 目录下;
拷贝 d:\cvsroot\phpdoc-zh\zh 目录下所有文件到 d:\phpchm\zh 目录下;
二、修改 chm 手册生成脚本文件
打开 make_chm.bat,并做如下修改:
如下的相关路径可根据你自己的需求进行相应的更改。
rem Path of the PHP CGI executable
set PHP_PATH=d:\php-4.3.6\php.exe
rem Path of the Help Compiler command line tool
set PHP_HELP_COMPILER="c:\Program Files\HTML Help Workshop\hhc.exe"
rem The language of the manual to compile
set PHP_HELP_COMPILE_LANG=zh
rem The source directory with the original DSSSL made HTML
set PHP_HELP_COMPILE_DIR=..\html
rem The directory, where the fancy files need to be copied
set PHP_HELP_COMPILE_FANCYDIR=fancy
打开 make_chm_fancy.php,并做如下修改(若用常规方式编译则这步可省略):
copy("chm/make_chm_style.css", "$FANCY_PATH/style.css");
copy("chm/make_chm_spc.gif", "$FANCY_PATH/spacer.gif");
改为:
copy("make_chm_style.css", "$FANCY_PATH/style.css");
copy("make_chm_spc.gif", "$FANCY_PATH/spacer.gif");
若你下载的 chm_setting.php 文件是1.9版以前,则还需做如下修改(主要解决CHM手册索引乱码问题,已通知Avenger更新了):
"zh" => array(
"langcode" => "0x804 Simplified Chinese",
"preferred_charset" => "CP936",
"mime_charset_name" => "gb2312",
"preferred_font" => "MingLiu,10,0"
)
改为:
"zh" => array(
"langcode" => "0x804 Simplified Chinese",
"preferred_charset" => "CP936",
"mime_charset_name" => "gb2312",
"preferred_font" => "simsun,10,0"
)
三、开始编译
只需敲入以下命令即可:
D:\phpchm\chm>make_chm.bat
稍等几分钟后就会在 php_manual_zh.chm 文件。
四、附件
这里附上笔者于2004年7月26日晚编译好的最新PHP手册。
下载地址:
http://www.phpsalon.com/php_manual_zh.chm
http://www.wenhepc.com/php_manual_zh.chm
推荐阅读
-
本文探讨了一个项目中遇到的挑战,即如何通过技术手段解决不同菜单项触发时,跨域IFrame页面的高度自适应问题。通过创建中介页面和利用JavaScript与Cookie机制,实现无缝的用户体验。 ...
[详细]
蜡笔小新 2024-12-04 20:32:23
-
本文详细介绍了Java中的动态代理机制,包括如何定义接口、实现类和代理处理器,并通过具体示例演示了动态代理的创建和使用过程。 ...
[详细]
蜡笔小新 2024-12-04 19:46:00
-
-
CSGOTimeLimit:40002000MS(JavaOthers)MemoryLimit:524288524288K(JavaOthers)ProblemDescriptio ...
[详细]
蜡笔小新 2024-12-04 19:06:23
-
探讨了在Android开发过程中遇到的关于TextView组件的常见问题,特别是如何实现多行文字的跑马灯效果,并提供了初步的解决方案和参考资料。 ...
[详细]
蜡笔小新 2024-12-04 18:32:09
-
Only2 Labs 是一家专注于视觉设计的工作室,如果您对当前的设计感到不满,或者急需寻找一个可靠的设计合作伙伴,甚至是您的团队项目需要专业指导,Only2 Labs 都将竭诚为您提供帮助。 ...
[详细]
蜡笔小新 2024-12-04 18:17:44
-
本文探讨了Windows Presentation Foundation (WPF)如何通过扩展Microsoft Build Engine (MSBuild)来增强其构建能力,特别是在处理WPF特有的任务时。 ...
[详细]
蜡笔小新 2024-12-04 17:26:08
-
CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ...
[详细]
蜡笔小新 2024-12-04 15:19:11
-
本文详细介绍了Java中常见的锁类型,包括乐观锁与悲观锁、独占锁与共享锁、互斥锁与读写锁、可重入锁、公平锁与非公平锁、分段锁、偏向锁、轻量级锁、重量级锁以及自旋锁。每种锁的特性、作用及适用场景均有所涉及。 ...
[详细]
蜡笔小新 2024-12-04 14:45:08
-
本文探讨了HDU 4035的问题,涉及一个由n个房间组成的迷宫,这些房间通过n-1条隧道相互连接,形成一棵树结构。任务是从起点1号房间出发,计算到达出口所需经过的平均隧道数量,考虑了在每个房间中可能发生的三种情况及其相应概率。 ...
[详细]
蜡笔小新 2024-12-04 14:37:25
-
本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ...
[详细]
蜡笔小新 2024-12-04 12:47:07
-
一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ...
[详细]
蜡笔小新 2024-12-04 12:15:42
-
本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ...
[详细]
蜡笔小新 2024-12-04 11:47:13
-
本文将详细介绍HTML中用于创建表单的标签及其基本用法,包括表单的主要特性和常用的属性设置。如果您正在学习HTML或需要了解如何在网页中添加表单,这将是一个很好的起点。 ...
[详细]
蜡笔小新 2024-12-04 11:22:47
-
本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ...
[详细]
蜡笔小新 2024-12-04 11:17:35
-
在近期的一个项目需求中,需要在微信公众号内嵌入H5页面,并实现用户通过该页面上传图片的功能,包括拍摄新照片或从已有相册中选择。前端开发中采用了fetch API进行接口调用,但遇到了上传图片时数据无法正确传递的问题。 ...
[详细]
蜡笔小新 2024-12-04 10:56:13
-