● HTMLファイルの一括変換について・よくある質問


1.Advancedコースでは、「特定フォルダー内のHTMLファイルを一括変換し、別のフォルダーに出力するサンプルプログラム 」が付属するとありますが、これは自分でもプログラムできます。その場合、Standardコースを購入して、自分で同じようなプログラムを作って、静的なHTMLファイルの一括変換処理をこのサーバサイドSHTMLを使って行った場合、ライセンス違反になりませすか?
いいえ、ライセンス違反になりません。自分でプログラムしていただいていいです。ただし、Standardコースのご購入者の方には、そのような一括変換プログラムに関するサポートは一切できませんので、その点はご容赦ください。

2.難読化の処理にかかる時間の目安を教えてください。
もちろん、これはお客様サーバのスペックやアクセス数その他の条件に左右されることは言うまでもないと思いますが、参考値として、概ね、10KBのデータの難読化に約0.25秒前後かかるとお考えください。詳細は、こちらをご参照ください。


3. たくさんのファイルを一括変換すると、どうしてもタイムアウトします。
はい、前項の質問に対する回答でも書いていますが、10KBのデータの難読化に概ね0.25秒かかります。PHPのデフォルトのタイムアウトは30秒だと思いますので、平均10KBのファイルの一括難読化を行うのであれば、約120個のファイルでタイムアウトします。平均20KBのファイルなら約60個のファイルでタイムアウトしてしてしまうでしょう。

ですから、面倒でも、その都度、変換前のHTMLファイルが格納されているディレクトリーの中身をその都度、空にしてから、別のHTMLファイルを入れてあげる必要があります。(あるいは、Advancedコースの場合に、弊社準が提供していただいているところの一括変換用サンプルファイルのソースの$input_htmlの値を書き換えてあげる必要があります。)

もしくは、ini_set関数で設定を変えることができる環境でしたら、

ini_set("max_execution_time",60);

などとしてください。上のように書くと、タイムアウトの時間が60秒に延長されます。

4. 一括変換用のPHPプログラムは、登録済みのサーバで動かして一括変換を行いましたので、その一括変換して作成したHTMLファイルは、好きなサーバにアップロードしても問題ありませんか?
いいえ、「サーバサイドSHTML」をHTMLファイルの一括変換を目的に利用される場合でも、その一括変換で生成されたHTMLファイルは、あくまでもご登録済みのサーバにのみアップロードしていただくことを許可させていただいています。規約に書かせていただいていますので、ご確認ください。

ご登録済み以外のサーバへのアップロードをご希望のお客様は、別途費用が必要です。サポートにご相談ください。

5. 「サーバサイドSHTML」を使えば、難読化対象のオリジナルのHTMLファイル(静的なもの)を頻繁に更新する場合にも、役に立つと聞きました。具体的に説明してください。
はい、非常にメリットがあります。静的なHTMLファイルの難読化に特化した弊社姉妹商品「SHTML」では、オリジナルのHTMLファイルの更新を行っても、自動では難読化後のHTMLファイルは更新されません。しかし、サーバサイドSHTMLでは、オリジナルのPHPファイルを更新したり、そのPHPファイルが読み込んでいるテンプレートHTMLソースを更新すれば、難読化後のHTMLソースも自動で更新されます。

さらに、サーバサイドSHTMLでは、動的なHTMLソースのみならず、静的なHTMLファイルのリアルタイム更新(もしくは、短時間内の更新反映)という御用途にもご利用いただけます。具体的な方法は下記の通りです。

静的なHTMLファイルのリアルタイム更新用のPHPプログラムのファイル名をここでは、convert_html.phpとします。このconvert_html.phpでは、特定のディレクトリー(フォルダー)内(「ディレクトリーA=『product2』」と呼びます。作業用ディレクトリー)にアップされているHTMLファイルを、サーバサイドSHTMLのライブラリを使って、特定のフォルダー(一般公開用のディレクトリー。「ディレクトリーB=『product』」と呼びます。)に一括で出力するプログラムにしておきます。(「サーバサイドSHTML」Advancedコースに付属の「特定フォルダー内のHTMLファイルの一括更新プログラムのサンプル」を参考にしていただくといいと思います。)

後は、編集・更新したオリジナルのHTMLファイルをディレクトリーA(上記挿絵でいうところの「product2」という名称のディレクトリー)にまとめてアップし、convert_html.phpを何らかの手段で実行すれば、一般公開用のHTMLファイルが更新されます。convert_html.phpを実行させる方法(上記挿絵の「2.難読化の方法」に該当。)は、手動が面倒であればcronでもできるでしょうが、頻繁に更新されない場合には、cronの実行頻度に気をつけられないと、サーバに思わぬ負荷をかける場合がありますのでご注意ください。

なお、CGI版PHPでないPHPをご利用の場合、ブラウザ経由でURLを入力してconvert_html.phpを実行する場合(= http://お客様サーバ名/〜/convert_html.phpへのアクセス。上記挿絵でいうところの「『2.難読化の方法』の『b』」)、ディレクトリーB(上記挿絵で言うところの「product」という名称のディレクトリー)やその中のHTMLファイルのパーミッションに注意しなければなりません。websuerに対して書き込み権限を与えなければ動作しませんが、セキュリティ上、好ましくない場合もありますから、一括更新する時のみ、一時的にパーミッションを変更し、すぐに元に戻すなどした方が良いでしょう。

この方式のメリットは、WEBデザイナーの方でプログラムの知識がまったくない方でも、普段どおりにFTPソフトでHTMLファイルを特定のディレクトリーにアップするだけで、cronを使えば完全自動で(convert_html.phpへ手動でアクセスする場合でも、きわめて簡単な方法で)、難読化が可能だということです。convert_html.phpのプログラムをプログラマーが一つ準備するだけで、ホームページのデザイナーが負担する作業は、アップするディレクトリーが今まで(=公開用ディレクトリー)と違う(ex. 今まで、「product」というディレクトリーにアップしていたものを「product_for_shtml」とか「prodcut2」にアップする)だけで、その他の特別な作業が一切不要になることです。

なお、この方法を使用する場合、作業用のディレクトリー(=オリジナルのHTMLファイルをアップロードするディレクトリー。上の例で言えば、「prodct_for_shtml」や「product2」のディレクトリー)にあるファイルに、一般の方がブラウザ経由でアクセスできると問題がありますので、.htaccessで、ブラウザ経由ではアクセスできないようにしていただくか、そもそもproduct2というディレクトリーをDocumentRootの下に置くのではなく、ブラウザ経由ではアクセスできないDocumentRootより上に置くようにしてください。ご不明の点は、サポートにお問い合わせください。


HTMLソース難読化用PHPライブラリ
「サーバサイドSHTML for PHP」
© 株式会社プランセスお問い合わせ