- 締切済み
携帯サイトでのPerlのtextarea容量
はじめて質問させていただきます。 Perlを使って携帯サイトを作成しています。 以前にtextareaで作成した文章をファイルに保存しておき 再度、編集する際に以前の文章データをtextareaに表示しようとしました。 以前の文章データの容量が小さい場合は問題なくtextareaに表示されるのですが、 以前の文章データの容量が大きい場合は後半部分が欠けてしまいます。 PCでは問題なく表示されるのですが・・・・ どなたか、ヒントでも教えていただければ幸いです。 なお、ソースの一部は以下の通りです。 よろしくお願いします。 記 #----------naiyou1.datの読込み--------- open( LOAD,"naiyou1.dat"); $naiyou1 = <LOAD>; close(LOAD); #---------文字の逆処理------------------ $naiyou1 =~s/&/&/g; $naiyou1 =~s/</</g; $naiyou1 =~s/>/>/g; $naiyou1 =~s/<br \/>/\n/g; #----------表示(内容1の変更:)---------------- print "<br />内容の変更:<br />\n"; #----------TEXTAREA($naiyou1)----------------------------- print "<form method=\"$GO\" action=\"$cgi_name\">\n"; print "<textarea name=\"naiyou1\" rows=\"7\" cols=\"25\"wrap=\"hard\">$naiyou1</textarea>\n"; print "<input type=\"hidden\" name=\"label\" value=\"811P\" />\n";#label811Pに飛ぶ print "<br /><input type=\"submit\" value=\"決定\" /><br />\n"; print "</form>\n"; 以上
- info002
- お礼率100% (1/1)
- Perl
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
携帯端末で表示できるコンテンツにはいろいろ制限があり、 その制限に引っかかっていると思われます。 例えば docomo の携帯端末全機種共通のコンテンツだと http://www.nttdocomo.co.jp/service/imode/make/content/browser/html/notice/limitation/index.html に書かれている制限があり、textarea だと 512バイト以内に 納めないといけないようです。
関連するQ&A
- TEXTAREAの改行がうまくいきません。
自作で掲示版を作成している、初心者です。現在作成中の掲示版にTEXTAREAに入力し、LOG上では1行目<BR>2行目といった形で改行をBRに置き換えて保存していますが、その修正としてLOGからデータをとり改行状態で表示させたいのですが、 うまく改行されない状態です。下記にLOGより読み込み。タグを\rに置き換えて いますが、TEXTAREAに表示されなく、改行表示どころではありません。 いったいどうすればよいのでしょうか?ご教示をお願いします。 <CGI文> $wkaaa1 = $IXUSERINF{Enaiyo}; データを取得 $wkaaa =~ ¬ag1($wkaaa1); 変換(これがおかしい?) $mesbuff .= "<TR><TD nowrap ><TEXTAREA ROW=\"10\" COLS=\"48\" NAME=\"Enaiyo\" WRAP=\"soft\">$wkaaa </TEXTAREA></TD></TR>"; <sub> sub notag1 { local($_) = @_; s/&/&/g; s/"/"/g; s/</</g; s/>/>/g; s/<br>/\n/gi (これで <BR>を\n(改行)にしてるつもり return $_; }
- ベストアンサー
- CGI
- PHPの<textarea>表示について。
すみません。PHP初心者です。よろしくお願いします。 下記のPHPのテキストをそのまま表示したいと思い、textareaを使用したところ、変数が全て実行されてしまい、現在の日時・表示ページなどの項目が2004/01/24・・・と表示されてしまいます。 下記のテキストのそのままを表示させるには、textarea以外に使用できる方法がありますでしょうか? どうぞよろしくお願いいたします。 <textarea> #!usr/local/bin/php-cgi <?php print "現在の日時:".date("Y/m/d H:i:s", date("U"))."<br>\n"; print "表示ページ:".$_SERVER["REQUEST_URI"]."<br>\n"; print "リンク元:".$_SERVER["HTTP_REFERER"]."<br>\n"; print "エージェント:".$_SERVER["HTTP_USER_AGENT"]."<br>\n"; print "IPアドレス:".$_SERVER["REMOTE_ADDR"]."<br>\n"; ?> </textarea>
- ベストアンサー
- PHP
- 変数の表示の仕方(改行の扱い)
perl初心者です。よろしくお願いします。 ひとつの変数で、print関数での表示とテキストエリアでの表示を しようとしているのですが、改行の扱いに困っています。 テキストエリアで<br>を表示させないようにすると、print関数の 方の改行がなくなるし、print関数の方に改行させると、テキスト エリアで<br>が表示されるし・・・。 print関数で改行、テキストエリアでは<br>が出ずに改行という 風にしたいのですが、どなたかご教授していただけませんか? よろしくお願いします。 #!/usr/local/bin/perl use strict; #データファイル my $datafile='./data.dat'; #ライブラリの読み込み require './jcode.pl'; my $input; #フォームデータの読み込み if ($ENV{REQUEST_METHOD} eq "POST"){ read (STDIN,$input,$ENV{CONTENT_LENGTH}); }else{ $input=$ENV{QUERY_STRING}; } #フォームデータのデコード my %form = (); my @pairs = split(/&/, $input); foreach my $pair ( @pairs ){ my( $name, $value ) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; #SJISコード変換 &jcode::convert(\$value, 'sjis'); $value =~ s/\r\n/<br>/g; $value =~ s/\r/<br>/g; $value =~ s/\n/<br>/g; $form{$name} = $value; } #データのオープン open(DAT,"+<$datafile"); flock(DAT, 2); #ファイル読み込み my $line = <DAT>; for ( split /\t/ , $line ) { my( $key , $value ) = $_ =~ /^([^=]*)=(.*)$/; #フォームデータの上書き $form{$key} ||= $value; } #データの書き込みとクローズ seek(DAT,0,0); $line = ''; while (my($key,$value) = each %form) { $line .= "${key}=${value}\t"; } print DAT $line; close(DAT); &header; print $form{A}; print "<br>"; print $form{B}; print "<br>"; print $form{C}; print "<br>"; print <<EOM; <b>[内容確認]</b> <form action="new.cgi" method="POST"> <INPUT TYPE="text" SIZE="27" name="A" value="$form{A}"><br> <INPUT TYPE="text" SIZE="90" name="B" value="$form{B}"><br> <TEXTAREA name="C" ROWS="2" COLS="27">$form{C}</TEXTAREA><br> <input type="submit" value="上記内容で送信"> </form> <br> </body> </html> EOM exit; #----------------------------------------------------------------------------------- # HTMLヘッダー #----------------------------------------------------------------------------------- 割愛
- ベストアンサー
- Perl
- textareaで改行すると、修正時、書き込んだデータがなくなります。
CGIのカスタマイズに関する質問です。 ソードワールドRPGキャラクターシート管理CGIを使用しています。 初期の設定で<input type>と<textarea>の改行をする際は<br>を使うと言う形になっています。 その中で<textarea>の改行をエンターキーでしたいと思い、 sub htmlunquote{ my $text = shift; $$text =~ s/</</g; $$text =~ s/>/>/g; の部分を sub htmlunquote{ my $text = shift; $$text1 =~ s/\r\n/<br>/g; $$text1 =~ s/\r/<br>/g; $$text1 =~ s/\n/<br>/g; と変換してみました。 すると、エンターキーで改行できるようになったのですが、修正や追記しようとすると、何故か前に書き込んだ文章が消えてしまっています。 なぜ、文章が消えてしまうのか、全く検討がつきません。FFFTPから、データを覗くと、書き込まれたデータはあるのですが……。 それとも改行をさせる方法が根本的に間違っているのでしょうか。 ご教授お願いいたします。
- ベストアンサー
- CGI
- textareaの入力データで無駄な改行が…
textareaでデータ入力し、perlで拾うと無駄に改行が入ってしまいます。 <textarea name="textarea_data"> a a a </textarea> これをPerlで拾って表示させると a a a と表示されてしまいます。 改行が無駄に一つ入ってしまっているのですが、考えられる原因は何でしょうか? print "$FORM{'textarea_data'}"; で表示させています。\n等は入れていません。
- ベストアンサー
- Perl
- cgi:textareaでの改行を<br>に
perlでcgiを作成しています。 <textarea>などで投稿されたテキストの改行文字を<br>に変換するために、 $value =~ s/\r\n/<br>/g; $value =~ s/\r/<br>/g; $value =~ s/\n/<br>/g; のように処理していました。が、<textarea>内で最後に何度もenterを押す人がいて、結果、 hoge<br>hoge<br><br><br><br><br><br><br> のようになってしまいます。 hoge<br>hoge のようにしたいのですが、パターンマッチをあまり勉強していないので、 よくわかりせん。 よろしくお願いします。
- ベストアンサー
- Perl
- メールフォーム
#!/usr/bin/perl use CGI; $cgi = new CGI(); $from = $cgi->param('from'); $namae = $cgi->param('namae'); $naiyou = $cgi->param('naiyou'); print "Content-type: text/html\n\n"; # 設定 $sendmail = '/usr/lib/sendmail'; $to = '*********@*****************'; #$from = ''; $subject ='************'; # メール送信 open(MAIL,"| $sendmail -t"); # ヘッダ情報出力 print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; # 本文出力 print MAIL " $namae\n\n"; print MAIL " $naiyou\n"; close(MAIL); #確認表示 print " $namae<br><br>"; print " $naiyou<br><br>"; print "メールを送信しました<br>"; exit HTMLで<textarea rows="6" cols="60" wrap="hard" required name="naiyou"> としたのですが Perlで確認表示の$naiyouの所が英語も日本語は改行されません。
- ベストアンサー
- Perl
- perlがうごきません
htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n"; print "まずい$in{'form2'}\n"; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。 perlの場所も正確です。
- ベストアンサー
- Perl
- textareaで改行させたい
textareaにあらかじめ文字列を表示させたいと思っています。表示させる文字列は配列に入れていて、配列には aaa bbb ccc のように改行コードが入っているのですが、下記のようにすると、 <textarea name="name1" id="id1" cols="65" rows="15" wrap="soft"><%=Arr(1,6)%></textarea> aaa<br>bbb<br>ccc<br> と表示されます。 テーブルに表示させると問題なく改行されて表示されるのですが、textareaだと、上記のようになってしまいます。 どのようにすればよいかご教示ください。
- ベストアンサー
- Microsoft ASP
- Perlでの改行コードについて
<textarea>に入力された値をPOSTで渡し、ポスグレに書き込み、それをHTML上で表示する処理をしているのですが。 textareaで改行を入力した場合に、 DB内に改行が登録されません。 例: *textareaのwrapはsoftに設定してあります。 あいうえおかきくけこ さしすせそ と入力すると。 DBには 「あいうえおかきくけこ さしすせそ」 と登録され 表示では「あいうえおかきくけこさしすせそ」と表示されます。 ソースでみると 「あいうえおかきくけこ さしすせそ」と表示されています。 改行コードの置換がされていないのだと思い INSERT前に s/\r\n/<BR>/g; s/\r/<BR>/g; s/\n/<BR>/g; を使い置換をすると DBには何も登録されません。 よろしくお願いいたします。
- ベストアンサー
- Perl
お礼
早々の回答ありがとうございます。 出来ない理由がはっきりしました。 お忙しい中、本当にありがとうございました。