みなさんはPHPの関数をすべて把握していますか?
PHPには便利な関数がたくさんあるのですが、そのすべてを把握している方は少ないと思います。その中でもPHPを始めたばっかり、ほかの言語と行き来してやられている方は、リファレンスが手放せないと思います。
そのときに役に立つのがPHPの公式サイトに置いてあるヘルプ形式のマニュアルです。関数を調べるのに毎回Googleさんにお世話になることもなく、リファレンス本を開くこともなく、オフラインで関数や機能を調べることができます。
こんな便利なヘルプファイルも一つ落とし穴があって、検索キーワードの部分が文字化けして使えません。これでは使い勝手が半減ですので、文字化けを修正したchmファイルを作成する方法をご紹介いたします。
ヘルプファイルをデコンパイルして自分で作成するだけで、インデックス表示だけでなく検索機能にも日本語が使用できるようになります。
作成するステップは以下の通りです。
- 前準備:必要ファイルをダウンロード
- HTML Help Workshopのインストール
- chmファイルをデコンパイルする
- プロジェクトを作成
- プロジェクトのオプションを変更する
- hhk、hhcファイルを修正する
- ファイルの文字コードとcharsetをShift-JISに変更する
- chmファイルの作成
前準備:必要ファイルをダウンロード
PHPのマニュアルはユーザノートがついているphp_enhanced_ja.chmをダウンロードします。ユーザノートとは関数やクラスについてユーザのやりとりが書いてある部分です。サンプルコードや、Howtoなども含まれているので結構参考になります。
HTML Help Workshopのインストール
HTML Help Workshopをダウンロードしてインストールします。uniextractなどでファイルを解凍して、管理者権限でコマンドプロンプトを開き→regsvr32 itcc.dllでレジストリに登録すればインストールせずに使用することもできます。
chmファイルをデコンパイルする
HTML Help Workshop(hhw.exe)を起動すると何もない画面が開きますので、chmのデコンパイルを選択します。
「Destination folder」にデコンパイルするフォルダを指定、「Compiled help file」に先ほどのphp_enhanced_ja.chmファイルを指定します。
プロジェクトを作成
魔法使いマーリンでしょうか?ハテナ模様のローブがおしゃれです。
「HTML Help table of contents」と「HTML Help index」にチェックを入れます。
先ほどデコンパイルしたフォルダにhhcファイルが入っていますのでBrowse..から選択します。
これでプロジェクトの指定は完了です。最後までマリーンさんは動かずじまいでした。
プロジェクトを作成した状態で左側ペインはこのようになります。
Project、Contents、Indexタブが日本語で表示されているのが確認できます。
プロジェクトのオプションを変更する
Projectタブをダブルクリックするから、左端のツールバー上部のChange project optionsボタンをクリックしてプロジェクトのOptionsウィンドウを開きます。
GeneralタブのDefault file:に「res/index.html」を入力します。
chmファイルを開いたときに最初に表示されるhtmlファイルを指定しています。
次にCompilerタブの「Compile full-text search infomation」にチェックをいれます。
このチェックが入っていないとchmファイルの検索機能が使えません。
hhk、hhcファイルを修正する
コンパイル作業に移る前に、このままの状態ではエラーが発生しますのでファイルを修正しておきます。
以下の二つのファイルを開きます。
- php_manual_ja.hhk
- php_manual_ja.hhc
pharfileinfo.chmod.htmlで検索して以下のように変更します。
変更後
<param name="Local" value="res/pharfileinfo_chmod.html">
function.chmod.htmlで検索し以下のように変更します。
変更前
変更後
<param name="Local" value="res/function_chmod.html">
hhc,hhkファイル両方とも変更したら、デコンパイルで指定したフォルダ以下にあるresフォルダを開きます。
function.chmod.htmlを先ほどしていしたファイル名「function_chmod.html」に、
pharfileinfo.chmod.htmlを「pharfileinfo_chmod.html」に変更します。
コンパイル時にHHC 5003エラーがでるのを避けるために、hhc、hhkファイルの<LI>要素を、小文字の<li>に一括置換しておきます。
ファイルの文字コードとcharsetをShift-JISに変更する
デコンパイルされたhtmlファイルはすべて文字コードがUTF-8となっています。このままコンパイルしてもIEコンポーネントを使っているのでヘルプ表示はされるのですが、ヘルプの検索機能を使ったときに文字化けが発生してしまいます。resフォルダ以下にあるhtmlファイルすべての文字コードを変更していきます。
1万ファイル以上ありますので、さすがに手作業は無理ですので自動変換ソフトを使用します。今回使ったソフトは「Repl-Ace」というソフトです。
以下のような設定で、文字コードをUTF-8からShift_JISへ変更しつつ、metaタグのcharsetをShift_JISに置換していきます。
- 探索ディレクトリをデコンパイルしたフォルダに設定
- 検索文字列を「charset=UTF-8″」に、置換文字列を「charset=Shift_JIS”」に
- 説明に「@USE[UTF8]@CNV[SJIS]」を設定
これで「一括実行」をすると変換が開始されます。
chmファイルの作成
ここまできたらあと一息です。File→Compileを選択してコンパイルします。
hhpファイルを作成する場所を指定します。デコンパイルした場所と同じところを選択します。
Complieボタンを押してコンパイルを開始します。2~3分くらいでコンパイルが完了します。エラーなく終わればphp_enhanced_ja.chmファイルができています。
Microsoft HTML Help Compiler 4.74.8702 Compiling c:\htmlhelp\php\php_enhanced_ja.chm Compile time: 7 minutes, 0 seconds 11,987 Topics 200,504 Local links 4,770 Internet links 71 Graphics Created c:\htmlhelp\php\php_enhanced_ja.chm, 33,232,657 bytes Compression decreased file by 109,082,285 bytes.
できあがったchmファイルを開いてみると目次、キーワードの部分が日本語化されています。ためしに検索タブから検索してみると、ちゃんと日本語でも引っかかってくれます!
これでPHPの開発が進みそうですね!はじめから公式サイトに文字化け解消版があれば良いのですが・・・
参考URL
はじめまして。この記事のアップに大変助けられています。ありがとうございます!
わかりやすい説明で、最終のヘルプファイル作成まで行き着けました。
(残念ながら各htmlファイルのcharset指定に失敗したらしく後でやり直しますが)作業全体の流れもわかり、とても嬉しいです。