<復習兼ねてHTMLソースを変換するツールの作成>
こんにちは、Ken3です。
そろそろDBやれよ、、、
と要望の声が聞こえてくる今日この頃いかがお過ごしですか?
(そんなこと、ダレもいってないって?)
今回は、今までの復習を兼ねて、
HTMLソースを変換するツールを作成してみます。
なんて言ってるけど、たいしたことないのでご安心を。
/*
* 1.機能、初めは簡単シンプルに
*/
ホームページ上にHTMLのソース載せるのって、
メモ帳でちまちま作成している私は、
手間かかってます。
<PRE>のタグで楽してるんだけど、
<html>を<html>と変換したりしなければならなくて、
いつもエディターの変換機能で<と>を2回置換して作成してます。
まず、この作業を無くしたいです。
次にやりたいのが、
ASPの<%〜%>で囲まれた部分をわかりやすく、
青色にしたいです。
*ソースの表示プログラムでは、青になってるのに、
バックナンバーでは、黒のままなので。
やりたいことを整理すると、
・<>を置換えたい、
・<%〜%>で囲まれたASPのソースを青にしたい
の2点です。
/*
* 2.データ遷移
*/
やりたいことが決まったので、
次はデータの流れを考えます。
えっと、
入力はメルマガ文章でHTMLのタグが中に入ってると
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
出力は、<>などを置換え、文章中のASP<%〜%>で囲まれた部分の色を変える
結果のHTMLソースを画面に出力ですね。
~~~~~~~~~~~~~~~~~~~~~~
いつものパターンで、
test025.html でフォームの入力
test025-1.asp で変換処理と出力にしますか。
/*
* 3.入力フォームの作成
*/
入力フォーム、いままで、いろいろと作ってきたなぁ。
複数行の入力を行うので、
<TEXTAREA ROWS=XX COLS=XX NAME="XXXXX">
</TEXTAREA>
を使用するか。
入力項目は一つでさびしいけど、下記のように作成しました。
-- test025.html
<html>
<head>
<title>HTMLのソースを作成する</title>
</head>
<body>
<h2>HTMLのソースを作成する</h2>
<br>
HTMLのタグ付き文章を記入して送信ボタンを押してください。<br>
タグを変換した結果が表示されます<br>
<FORM ACTION="test025-1.asp" METHOD="POST">
↓↓↓変換したい文章↓↓↓<br>
<TEXTAREA ROWS=15 COLS=80 NAME="t-moto">
ここに、文章をコピーして下さい
</TEXTAREA><br>
<INPUT TYPE="submit" VALUE="文章を変換する">
<INPUT TYPE="reset" VALUE="クリア">
</FORM>
</body>
</html>
-------
フォームの作成
^^^^^^^^^^^^^^
<FORM ACTION="test025-1.asp" METHOD="POST">
・
・
</FORM>
で入力フォームが作成されます。
ACTION="test025-1.asp"
とデータの受け取り先を指定します。
METHOD="POST"は送信方法で、標準出力を使った方法です。
="GET"とするとURLの後ろに付けたクエリ情報で送ります。
( GETの詳細は、http://www.ken3.org/backno/backno_asp02.html#9
のFORM ACTION="XXX.asp" METHOD="GET" を使用をみてください)
入力エリアの作成
^^^^^^^^^^^^^^^^
入力エリアは、
<TEXTAREA ROWS=15 COLS=80 NAME="t-moto">
ここに、文章をコピーして下さい
</TEXTAREA><br>
で簡単に作成しました。
<TEXTAREA>のタグを使用して、
行 ROWS=15 15行と表示を指定しているが、データはスクロールでたくさん入る
列 COLS=80 文章を貼るので大きめに
データの名前 NAME="t-moto"
と指定してます。
ボタンの作成
^^^^^^^^^^^^
フォームの動作をするボタンを2つ作りました。
<INPUT TYPE="submit" VALUE="文章を変換する">
は、押されたらデータを送信します。
<INPUT TYPE="reset" VALUE="クリア">
は、入力データをクリアします。
入力側は物足りないけどこんな感じです。
/*
* 4.出力側の処理
*/
フォームから送られた文章を受け取って、変換処理を行います。
データの受け取りは
^^^^^^^^^^^^^^^^^^
POSTで送られてくるので、
Request.Form("項目名")
~~~~~~~~~~~~~~~~~~~~~~
で値を参照だったっけ、
( 詳細は、http://www.ken3.org/backno/backno_asp01.html#4
の、[No.4 フォームから値を受け取りたい]を参照 )
タグの変換は
^^^^^^^^^^^^
たしか、
Server.HTMLEncode("文字列")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
で
変換結果を返してくれるんだっけ、
( 詳細は、http://www.ken3.org/backno/backno_asp04.html#17
の、[No.7 中身を表示、Server.HTMLEncodeでソースの表示]を参照 )
ASPソースの色を変える
^^^^^^^^^^^^^^^^^^^^^^^^
これは、
Replace関数
~~~~~~~~~~~
で、
変換された<,>の前後に<Font>のタグを付けて処理しました。
strDATA = Replace(strDATA, "<%", "<font color='blue'><%") '青にする
strDATA = Replace(strDATA, "%>", "%></font>") 'カラー終了
こんな感じだったよね。
( 詳細は、http://www.ken3.org/backno/backno_asp05.html#21
の、[No.21 文字列の置き換え、Replace関数を使用]を参照 )
なんだよ、過去のメルマガの紹介かよ。
で作成したのが、下記のtest025-1.aspです。
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>受け取った文章をHTMLソースに変換</title>
</head>
<body>
<h2>受け取った文章をHTMLソースに変換</h2>
test025-1.asp<br>
<hr>
<%
'まず、タグ関係を変換する
strMOTO = Server.HTMLEncode(Request.Form("t-moto")) 'タグを変換
'次にASPソース<%〜%>を青にする
strMOTO = Replace(strMOTO, "<%", "<font color='blue'><%") '青にする
strMOTO = Replace(strMOTO, "%>", "%></font>") 'カラー終了
%>
<PRE><%=strMOTO%></PRE>
↑<PRE>で囲うと元のままだ<br>
あっ、当たり前か、<を変換してもそのまま表示したんじゃ
<hr>
よし、タグをさらに変換して潰してやる<br>
<%
strMOTO = Server.HTMLEncode(strMOTO) 'タグをさらに変換
%>
<PRE><%=strMOTO%></PRE>
↑なんとかできたのかなぁ(笑)
<hr>
終了です。<br>
</body>
</html>
----
タグ関係の変換とASP部分の処理
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<%
'まず、タグ関係を変換する
strMOTO = Server.HTMLEncode(Request.Form("t-moto")) 'タグを変換
'次にASPソース<%〜%>を青にする
strMOTO = Replace(strMOTO, "<%", "<font color='blue'><%") '青にする
strMOTO = Replace(strMOTO, "%>", "%></font>") 'カラー終了
%>
もう、関数の力を借りまくりで、ほぼそのままでした。
おいおい、表示が戻ってるよ(笑)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<PRE><%=strMOTO%></PRE>
でそのまま結果を表示と。
あれ?
<>とかそのまま表示された。
あれ?じゃないよ三流君、だって&lt;は<だろ、そのまま表示されるって。
そっか
よし、タグをさらに変換して潰してやる
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<%
strMOTO = Server.HTMLEncode(strMOTO) 'タグをさらに変換
%>
<PRE><%=strMOTO%></PRE>
で、
さらに、&を&ampに変換して、
これを<PRE>で表示すると、OKです。
なんか変だよね2回も変換通すなんてね。
違うやり方ありそう。。。。
/*
* 5.終わりの挨拶
*/
今回は、復習を兼ねて、HTML付きの文章を変換してみました。
テストは、
http://www.ken3.org/cgi-bin/test/test025.html
からできます。
遊んでみてね。
そろそろDBかなぁやはり。
イヤ、まだまだ違うネタで、、、、
素朴な疑問あったら、気軽に、
メール、掲示板に書き込んでくださいね。
ASP、VBScript勉強中の三流プログラマーのKen3でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。

下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
広告:
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]