モノレビュー

PHPのchm形式のマニュアルの文字化けを直す方法

みなさんはPHPの関数をすべて把握していますか?

PHPには便利な関数がたくさんあるのですが、そのすべてを把握している方は少ないと思います。その中でもPHPを始めたばっかり、ほかの言語と行き来してやられている方は、リファレンスが手放せないと思います。

そのときに役に立つのがPHPの公式サイトに置いてあるヘルプ形式のマニュアルです。関数を調べるのに毎回Googleさんにお世話になることもなく、リファレンス本を開くこともなく、オフラインで関数や機能を調べることができます。

こんな便利なヘルプファイルも一つ落とし穴があって、検索キーワードの部分が文字化けして使えません。これでは使い勝手が半減ですので、文字化けを修正したchmファイルを作成する方法をご紹介いたします。

ヘルプファイルをデコンパイルして自分で作成するだけで、インデックス表示だけでなく検索機能にも日本語が使用できるようになります。

作成するステップは以下の通りです。

  1. 前準備:必要ファイルをダウンロード
  2. HTML Help Workshopのインストール
  3. chmファイルをデコンパイルする
  4. プロジェクトを作成
  5. プロジェクトのオプションを変更する
  6. hhk、hhcファイルを修正する
  7. ファイルの文字コードとcharsetをShift-JISに変更する
  8. chmファイルの作成

前準備:必要ファイルをダウンロード

PHPのマニュアルはユーザノートがついているphp_enhanced_ja.chmをダウンロードします。ユーザノートとは関数やクラスについてユーザのやりとりが書いてある部分です。サンプルコードや、Howtoなども含まれているので結構参考になります。

HTML Help Workshopのインストール

HTML Help Workshopをダウンロードしてインストールします。uniextractなどでファイルを解凍して、管理者権限でコマンドプロンプトを開き→regsvr32 itcc.dllでレジストリに登録すればインストールせずに使用することもできます。

chmファイルをデコンパイルする

HTML Help Workshop(hhw.exe)を起動すると何もない画面が開きますので、chmのデコンパイルを選択します。

File->Decompileを選択します

「Destination folder」にデコンパイルするフォルダを指定、「Compiled help file」に先ほどのphp_enhanced_ja.chmファイルを指定します。

デコンパイル作業は1~2分ほどで完了します。

プロジェクトを作成

次に新規プロジェクトを作成します。

魔法使いマーリンでしょうか?ハテナ模様のローブがおしゃれです。

先ほどデコンパイルしたフォルダを指定します。

「HTML Help table of contents」と「HTML Help index」にチェックを入れます。

先ほどデコンパイルしたフォルダにhhcファイルが入っていますのでBrowse..から選択します。

同じようにhkkファイルも選択します。

これでプロジェクトの指定は完了です。最後までマリーンさんは動かずじまいでした。

プロジェクトを作成した状態で左側ペインはこのようになります。
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ファイルを修正する

コンパイル作業に移る前に、このままの状態ではエラーが発生しますのでファイルを修正しておきます。

このようなエラーとなります。

以下の二つのファイルを開きます。

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に置換していきます。

これで「一括実行」をすると変換が開始されます。

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

PHPマニュアル(chm)文字化け対策(KeyToolsを使わない版)

モバイルバージョンを終了