テキストエリアの文字列をタグ付きで表示しようとしているのですが、タグ自体を表示し、なおかつ、タグのとおり改行しているように表示するにはどうしたらよいでしょうか?頭が回らなくなって来ました・・。
下記ではタグを表示するところまではできました。

<%
mode = Request("MODE")
Select Case mode
Case ""
main
Case "DISP"
disp
End Select
%>
<% Sub main() %>
<FORM ACTION="<%= Request.ServerVariables("SCRIPT_NAME") %>?MODE=DISP" METHOD="POST">
<TEXTAREA NAME="bun" ROWS="7" COLS="73">
こんちは
どうも

やった
</TEXTAREA><P>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>
<% End sub %>

<% Sub disp() %>
<%= Server.HTMLEncode(Replace(Replace(Request("bun"), chr(10), "<BR>"), chr(10), "<BR>")) %>

<% End sub %>

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちは。



ご存知かも知れませんが、念のため。
Server.HTMLEncodeは、ブラウザで表示できない文字を、表示できるように
変換します。
例えば<や>などを、&lt;、&gt;に変換してくれます。
ですので、最初にHTMLEncodeを行ったほうがいいでしょう。

つまり、
1.Server.HTMLEncodeで変換する。
2.改行を、希望の文字列(表示するタグ+改行するタグ)に変換する。
の順で変換すればうまくいくと思います。

実際のコードは次のようになるでしょう。
Replace(Server.HTMLEncode(Request("bun")), chr(10), "&lt;BR&gt;<BR>")
    • good
    • 0
この回答へのお礼

回答ありがとうございました。おかげ様でできました。ご説明の順序立てがいまいちはっきりしないもので質問させていただきましたが、説明でよく理解できました。

お礼日時:2001/05/08 19:01

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSSD 7mm 9mm

デスクトップPCの起動ディスクとしてSSDを購入する予定です。

とあるSSDを検討していますが、
価格・その他の条件は全く同じで、
唯一厚みが違うというのがあり、
どちらがいいかで迷っています。

http://kakaku.com/prdcompare/prdcompare.aspx?pd_cmpkey=K0000495405_K0000495402

※価格コム比較では値段が違いますが、会員限定で同価格で入手可。

何を基準に選べばいいでしょうか?アドバイスお願いします。

Aベストアンサー

>何を基準に選べばいいでしょうか?
基準は人それぞれ違いますが
大体は速度と寿命ではないでしょうか。

厚みの基準は9mmがデスクトップで
7mmがノートだと思ってください。

Q と <% %>は違うの??

ASP開発をしています。

あるASPでIncludeファイルで配列宣言
Dim gsABC(10)を宣言します。

Includeファイルの中身
<Script Language="VBSCRIPT" RUNAT="SERVER">
Dim gsABC(10)
</script>

そして、ASPファイルでその変数gsABC(0)を
使おうとするとエラーが発生します。

けれども、Includeファイルの中身を
<%
Dim gsABC(10)
%>

にすると正常に動きます。
2つは同じものだと思っていたのですが、
これによって違うものなのかと認識するように
しなければと思ってますが・・・

どこが違うのか分かりません。

どなたか分かりやすく簡単でいいですから
説明して頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

おすすめは後者の 「 <% Dim gsABC(10) %> 」です。
Includeでしたら別に構いませんが、前者だとASPやHTMLに拡張子を決めてしまうとソースが丸見えです。
開発でもやりましたが、VB系のソースは基本的に後者だと思っています。

参考URL:http://tryasp.winscom.co.jp/sample/

QEncode.pmというモジュールをPerl5.6でも使いたい

Perl5.8からEncodeというモジュールが標準装備されるそうですが、Perl5.6で使い続けなければいけませんので、5.6のバージョンのままで、Encodeモジュールは使えるのでしょうか?

どこかで、Encode.pmのモジュールをダウンロードして
perl Makefile.PL
make
make test
make install
で、うまくいのでしょうか?

Aベストアンサー

無理です。
EncodeはPerl5.8以降の仕様に依存しているため、それ以前の古いPerlで使うことはできません。

Q"<%=date変数%>" を "<%=date18(←仮数字)%>"とHTML上で表示させたい

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%
    Else
    End if
    a = a + 1
   Loop
   Response.Write str
   Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="<%=date<%=num%>%>"【←問題の箇所です】>
   <br>
   <div id="caldiv<%=num%>"></div>
<%End Function%>

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   ...続きを読む

Aベストアンサー

実際に試したわけじゃないですけど、普通に &lt;%=date変数%&gt; で
できませんか。
(実体参照)

QEncodeモジュールのバージョンアップ

Encodeモジュールの 2.12は、2005-09-08にCPANでアップされていますが、
EncodeモジュールはPerl5.8では標準モジュールになっておりますが、
バージョンアップを行う場合、Encode-2.12.tarのみダウンロードして
展開後、以下の手動インストールでOKでしょうか?
perl Makefile.PL
nmake
namke test
nmake install

ちなみにActivePerlは5.8.7で、
インストールされていたEncodeモジュールは 2.10
今回インストールするモジュールのバージョンは 2.12です。

Aベストアンサー

自分は、
ActivePerl 5.8.7
WindowsXPの環境で、CPANは設定済みの状態で、
コマンドラインで、
cpan
install Encode
だけでインストールできましたけど…

Qvalue="<%=date25(25は変数です)%>"値を変数にしてデータを受け取りたい

いつもお世話になっております。
ASPのプログラミングの最中、データの受け取りを関数で行おうとした所
ソースの記述が分からなくなったので質問した次第です。
お手数をおかけしますが、アドバイスお願いいたします

※質問概要
 あらかじめ入力していたデータを
 value="<%=date値%>(値=1~26)で受け取り、内容をHTMLに表示しようと思っています。
値の変数は「num」
 一件だけならば value="<%=date10%>" と入力して
 「2008/08/29」日付を取得、HTMLに記述させられるのですが
 関数で、複数件(26件)処理するとなると

 変数名1~26の処理をnumに置き換えて
 26個のテキストBOXにそれぞれのデータを出力したいのですが
 どの様に記述すればいいでしょうか?
(value="<%=date<%=num%>%>"にしましたが、データの取得は出来ませんでした。
 value="&lt;%=date<%=num%>%&gt;"も
 テキストBOXに<%=date1%>~26出力されて取得できませんでした)


 説明不足の点がありましたら、即追加いたします。
 以上、よろしくお願いいたします。



ソースを記載いたします

<!-- カレンダー設置関数 -->
<% Function cal(num)
  Dim a
  Dim str %>
  <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%  a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%   Else
    End if
     a = a + 1
    Loop
    Response.Write str
    Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="&lt;%=date<%=num%>%&gt;"【問題の箇所です】>
    <br>
    <div id="caldiv<%=num%>"></div>
<% End Function%>

いつもお世話になっております。
ASPのプログラミングの最中、データの受け取りを関数で行おうとした所
ソースの記述が分からなくなったので質問した次第です。
お手数をおかけしますが、アドバイスお願いいたします

※質問概要
 あらかじめ入力していたデータを
 value="<%=date値%>(値=1~26)で受け取り、内容をHTMLに表示しようと思っています。
値の変数は「num」
 一件だけならば value="<%=date10%>" と入力して
 「2008/08/29」日付を取得、HTMLに記述させられるのですが
 関数で、複数...続きを読む

Aベストアンサー

VBScriptなら Eval関数を使って変数の値を <%= で出力しましょう

value="<%= Eval("date" & num ) %>">

といった具合にします

QJcodeモジュールとEncodeモジュール

以下、Perl5.8でJcodeモジュールを使った場合とEncodeモジュールを使った場合の違いについて、知りたいです。
※そもそもこのモジュールは同時に使ったらだめなのでしょうか?

use strict;
use utf8;
use Jcode;
use Encode;

my $dat1 = "あイ卯(1)Iⅰ";
Jcode::convert(\$dat1, "utf8");

my $dat2 = "あイ卯(1)Iⅰ";
$dat2 = Encode::encode("utf8", $dat2);

文字コード変換の正しい使い方が知りたいです。

Aベストアンサー

Jcode.pmの2.0以降では、Encodeがある環境(つまり本体のバージョンが
5.8以降)の場合には Jcode は Encodeのラッパーとしてインストールされます。
つまり変換そのものはEncodeがやっていることになります。

ということで基本的に違いはありません。
混在しても悪影響はありません。

ただし、
> $dat2 = Encode::encode("utf8", $dat2);
Encode の encode/decode は単なるコード変換だけではないので、
コード変換のみが目的なら from_to を使ったほうが良いです。

> 文字コード変換の正しい使い方が知りたいです。
正しいとか間違っているとかはないと思いますが、使えるPerl本体の
バージョンが5.8以降ならばEncode.pmは標準で入っているはずなので、
Encodeを使っておけばよいでしょう。
そうではなくて、、5.6とかさらにそれより前のものがある環境でも使う
ようなスクリプトなら、Jcode.pmを使わざるを得ないと思います。

Jcode.pmの2.0以降では、Encodeがある環境(つまり本体のバージョンが
5.8以降)の場合には Jcode は Encodeのラッパーとしてインストールされます。
つまり変換そのものはEncodeがやっていることになります。

ということで基本的に違いはありません。
混在しても悪影響はありません。

ただし、
> $dat2 = Encode::encode("utf8", $dat2);
Encode の encode/decode は単なるコード変換だけではないので、
コード変換のみが目的なら from_to を使ったほうが良いです。

> 文字コード変換の正しい使い方...続きを読む

Q<%= now %>の結果

私の利用しているサーバーは
<%= now %>
で「02/11/12 午前 5:17:27」のような形式で表示されますが、これは一般的ですか。

#ふと疑問に思ったので。
#もしこれを変更するならどのような方法がありますか。

Aベストアンサー

now関数の場合は現在の時刻、日付が並んで表示されますね。これは日付、時間の省略時の編集方法です。

ASP内で編集する場合はFormatDateTime関数で編集できます。このときに地域のプロパティに従った編集をしますので詳しくはVBScriptでのこの間数のリファレンスをひいてください。
以下のURLがVBScriptの公式オンラインリファレンスです。

参考URL:http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/script56/vtoriVBScript.htm

Qmb_encode_numericentityでタグは変換させない方法は?

こんにちは。

今、ホームページで下記のようにPHPを使っています。
mb_encode_numericentity("内容ないようナイヨウ", array(0, 0x10FFFF, 0, 0x10FFFF), 'UTF-8'));

ただこれだと、例えば下記にした場合は<p class="className">と</p>までも変換されてしまいます。
mb_encode_numericentity("内容ないよう<p class=\"className\">ナイヨウ</p>", array(0, 0x10FFFF, 0, 0x10FFFF), 'UTF-8'));

これをどうにかされられないかとmb_encode_numericentityの第二引数を考えているのですが分かりません。用は開くタグと閉じるタグだけはそのままにしたいのです。

そのような高級なことは可能でしょうか?

お知恵をお貸し下さい。

Aベストアンサー

つかっている$convmapと$encodingが一緒なので、まとめたほうがよいかも

function test3($str)
{
$convmap=array(0, 0x10FFFF, 0, 0x10FFFF);
$encoding="UTF-8";
$pattern="/<.*?>|[\r\n]+/";
if(preg_match_all($pattern,$str,$matches)){
$datas=preg_split($pattern,$str);
array_walk($datas,function (&$item) use($convmap,$encoding){$item=mb_encode_numericentity($item, $convmap, $encoding);});
$str2=implode("%s",$datas);
$str2=vsprintf($str2,$matches[0]);
}else{
$str2=mb_encode_numericentity($str, $convmap, $encoding);
}
return $str2;
}

じっさいのところ、preg_replace_callback()でやる方が簡単にできそうなのですが
ちょっと書き方がめんどくさそうなのでご提示の処理になっています。

つかっている$convmapと$encodingが一緒なので、まとめたほうがよいかも

function test3($str)
{
$convmap=array(0, 0x10FFFF, 0, 0x10FFFF);
$encoding="UTF-8";
$pattern="/<.*?>|[\r\n]+/";
if(preg_match_all($pattern,$str,$matches)){
$datas=preg_split($pattern,$str);
array_walk($datas,function (&$item) use($convmap,$encoding){$item=mb_encode_numericentity($item, $convmap, $encoding);});
$str2=implode("%s",$datas);
$str2=vsprintf($str2,$matches[0]);
}else{
...続きを読む

Q<%@ language="VBScript" %>

下記質問、よろしくお願いいたします。

<%@ Language="VBScript" %>
<%


%>

という記述と、

<Script Language="VBScript">
<!--


-->
</Script>

という記述の違いって何でしょうか。
1つわかっているのは、イベントハンドラを
<%
Sub btnButton1_OnClick
End Sub
%>
と記述しても認識してくれはしませんでした。
ネットをいろいろ調べましたが、「<%@・・」の
記述を調べられず困ってます。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは。

<%@ Language="VBScript" %>
はサーバにVBScriptで記述しますと教え、
アクセスがあった場合に、処理を行った後、結果としてHTML等を返します。

<script・・・
はブラウザにVBScriptで記述しますと教え、
ブラウザ上で実行されます。

なので、
<%
Sub・・・
%>

とした場合、サーバ上で全て処理されますので、ボタンを押したとか
はわからないので使用することが出来ません。


人気Q&Aランキング