テキスト中の指定されたパターン(文字列)を、全て抽出して表示する機能の事を、一般的にグレップ(GREP)と呼んでいます。気の利いたテキストエディターには必須機能のひとつですので、おそらくみなさんにも、おなじみの機能だろうと思います。もちろん「メモ帳」にもあります。
ちなみにGREPという言葉の語源は、Global Regular Expression and Printの接頭語で、元々はUNIXSのコマンドから来ているそうです。ウインドウズでは、「検索」という機能が、この「Grep」に相当します。
このグレップ機能は、ウェブサイトの内容に大規模な修正をする必要が生じた際に、威力を発揮します。しかしグレップされたファイルに対して、テキストエディターを使ってひとつずつ修正していく作業は、実際にはかなり面倒です。
そこで、多数のファイル内の文字列を一括で、別の文字列に置き換えることができる便利なツールを紹介します。
時間に追われるウェブマスターには強力な味方になることでしょう。
sonno TCの一括置換機能を利用した、筆者自身の活用例をふたつ紹介します。
置換済みファイルの出力先を別のフォルダに指定しておけば、一応元のファイルは安全ですが、この手の作業を行う前には、必ずデータのバックアップを取っておく習慣を持たれることお勧めします。
不測の事故は、たいてい操作に慣れた頃にやってくるものです。
会社や団体等のサイトのウェブマスターならば、その組織の名称変更や住所移転が発生した場合、すみやかに対応することが望ましい。もしくは物理的な所在地は不変でも、市町村合併等で住所表示が変わってしまう場合があります。
そんな場合でも、sonno TCさえあれば、少しも慌てる必要はありません。
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='CGI設置URI/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
// -->
</SCRIPT>
上記のjavascriptは、futomi's CGI Cafeの高機能アクセス解析を導入する際に、解析対象のhtmlソースに貼り付けるスクリプトの一例です。
実際に使用する場合は、CGI設置URIの部分を、実際のURIに書き換える必要があるので注意して下さい。
アクセス解析用のCGIプログラムが問題なく稼動しているのを確認できたら、後は上記のスクリプトを解析対象にしたいウェブページに、片っ端から貼りつけていくだけなのですが、サイト内の全てのページをアクセス解析の対象にしたい場合、当然のことながら、全てのページにこのスクリプトを貼りつける必要があります。ページ数の少ない小規模なサイトならともかく、100ページ以上あるようなサイトの場合、実に気が遠くなるような作業です。
そんな時にも!
なんだかテレビショッピングみたいですね・・・・・・・
複数行の文字列を一括置換できるsonno TCが、大活躍します。
例えば、「特定の文字列(要素)」を、「挿入したいスクリプト+特定の文字列」という形式で一括置換を実行すれば、全てのページに目的のスクリプトを挿入することが可能です。
置換を行う文字列の選定条件は、全てのページに必ず存在する事と、ひとつのページに一箇所しか存在しない事という2つですから、この場合、BODY要素の終了タグあたりが妥当です。
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='CGI設置URI/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
// -->
</SCRIPT>
</body>
たったこれだけでOKです。これが基本形。
ほんの少しだけ欲を言うと、上記のようなサイト内の全てのページで共通したスクリプトを実行したい場合は、スクリプトの部分を外部ファイル化してしまって、それぞれのhtmlファイル上からその都度呼び出して、スクリプトを実行させる方がスマートなやり方といえるでしょう。
htmlのソースも短くなりますし、後々の管理も非常に楽になります。
1.当該JavaScriptの実行スクリプト部分(普通は、コメントアウトされているところ)を、コピーする。
document.write("<img src='CGI設置URI/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
上記の例の場合では、この部分。
2.テキストエディターで新規のテキストファイルを作成し、先程コピーした部分をペーストして、好きな名前を付けて保存する。ただし拡張子は、.jsとする。
ここでは以下の説明の都合上、実行ファイルと命名します。
3.実行ファイルをサーバーの任意のディレクトリにアップロードします。もしくは設置するURIだけ決めておいて、後からアップロードしても構いません。
4.htmlソースの、スクリプトを実行したい部分に、外部ファイルを参照するための記述を追加する。
<script type="text/javascript" src="実行ファイルのURI"">
sonno TCを使って、置換するなら
<script type="text/javascript" src="実行ファイルのURI"> </body>
もしくは、既に前述の基本形を利用している場合は
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='CGI設置URI/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
// -->
</SCRIPT>
</body>
<script type="text/javascript" src="実行ファイルのURI"> </body>
となります。