- ベストアンサー
文字列変換すると、数字に変わる
CGIで、 $hensu = ~ s/\r\n|[\r\n]/<br>/g; を実行すると、 18446744073709551615 と、書き出されます。 ・・・これは、何なのでしょうか? http://okwave.jp/qa/q1653502.html などを参考にしたのですが、いまいちよく分かりません。 すいませんが、ご存知の方がいらっしゃいましたら、ご教示いただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- _--_1l1_1_
- ベストアンサー率67% (102/152)
- _--_1l1_1_
- ベストアンサー率67% (102/152)
関連するQ&A
- 改行の変換がうまく出来ていない?
perlの更新記録CGIを改造中です。 テキストエリアを数個設置しているのですが、うまく保存が出来ません。 新規情報を入力するときはちゃんと改行したいデータも保存されます。しかし、修正画面で、何もしないでそのまま保存し直したところ、変に改行が入ってしまいます。(情報の途中で改行が入るので、ゴミレコードが増えてしまう。) 修正画面からログに書き込む手前で<BR>の変換をしていますが、何が間違っているのでしょうか? $in{'kouc1'} =~ s/\r\n/<br>/g; $in{'kouc1'} =~ s/\r/<br>/g; $in{'kouc1'} =~ s/\n/<br>/g; $in{'kouc2'} =~ s/\r\n/<br>/g; $in{'kouc2'} =~ s/\r/<br>/g; $in{'kouc2'} =~ s/\n/<br>/g; $in{'kouc3'} =~ s/\r\n/<br>/g; $in{'kouc3'} =~ s/\r/<br>/g; $in{'kouc3'} =~ s/\n/<br>/g; 新規入力のほうもまったく同じ状態ですが、こちらは正常に保存されます。 足りない情報があればすぐに指摘をお願いします。
- 締切済み
- CGI
- テキストエリアが複数あるときの改行変換方法
CGIを改造中です。 ログに保存するとき改行(<BR>)を変換する必要があると思うのですが、 複数のテキストエリアがある場合はどのようにしたら良いのでしょうか? 現状 $in{'$com1'} =~ s/\r\n/<br>/g; $in{'$com1'} =~ s/\r/<br>/g; $in{'$com1'} =~ s/\n/<br>/g; $in{'$com2'} =~ s/\r\n/<br>/g; $in{'$com2'} =~ s/\r/<br>/g; $in{'$com2'} =~ s/\n/<br>/g; ~~ と言う風に書いていますが、うまく変換されていないようで、ログが崩れてしまっています。 どのように記述するのが良いのでしょうか?
- 締切済み
- Perl
- CGIで受け取った日本語文字列を正規表現で
perlでcgiを作っています。 テキストボックスに入れてもらった文字列から正規表現で数字を抽出します。 以下のように、組むと "USA"のような半角英数はただしくマッチしますが、 "アメリカ"や"ドル"などはマッチしません。簡単に解決する方法をお教えください。 my $text = $in_data{'data_text'}; $text =~ tr/+/ /; $text =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; $text =~ s/[<>"'&\r\n]//g; $text =~ s/&/&/g; $text =~ s/</</g; $text =~ s/>/>/g; $text =~ s/"/"/g; $text =~ s/'/'/g; $text =~ s/\r\n/<br>/g; $text =~ s/\n/<br>/g; $text =~ s/\r/<br>/g; if ($text =~ /USA (\d+) dollars/){ print "USA $1\n"; } if ($text =~ /アメリカ (\d+\.\d+) ドル/){ print "アメリカ $1\n"; } exit;
- ベストアンサー
- Perl
- CGIで改行タグを改行コードに変換ってできますか?
CGIで改行タグを改行コードに変換ってできますか? $text =~ s/\r\n/<br>/g; $text =~ s/\r/<br>/g; $text =~ s/\n/<br>/g; で確認画面上で表示されるtextareaの文章は改行されるのですが、 届いたメールには<br>と表示されてしまって困ってます。 PHPでは変換できるみたいなのですが、perlでも出来るのでしょうか?
- ベストアンサー
- CGI
- 文字列内の\nで改行表示させるための置換
すでに他のかたがNo.7770 でなさった質問によく似ていますが、私の場合と微妙に違いますので、質問させてください。たとえば: $data='i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る' この$data 内の「\n」を<Textarea>に改行して表示したいので、文字列置換を $data = ereg_replace("\n", "<BR>", $data); とか $data = ereg_replace("\\n", "<BR>", $data); とか $data = ereg_replace("/\\n/", "<BR>", $data); やってみてますが、どうしもPerl の場合には成功した: $data=~ s/\\n/\n/g; と同じ結果が得られません。表示の末尾に<BR>が出たり、\nのままだったりします。何度も行なわれているような初歩的質問ですが、お願いします。
- ベストアンサー
- PHP
- 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
- Perl文字列置き換えについて
今日は、PerlとCGIについて、お聞きしたいことがあります。 ~s///;で、文字列の置き換えが出来ますよね? 実行しても、変な数字しか出てこないのです。^^; つまずいてしまいました。 以下、コードです。(プロバイダはぷららです) 実行URL http://www9.plala.or.jp/mura001/form2.html =============================================== #!/usr/local/bin/perl -w require "jcode.pl"; require "cgi-lib.pl"; $host=$ENV{'REMOTE_HOST'}; #IP取得 $addr=$ENV{'REMOTE_ADDR'}; $bo=$ENV{'HTTP_UER_AGENT'}; $http=$ENV{'HTTP_HOST'}; #アクセス元URL $access=$ENV{'HTTP_REFERER'}; &ReadParse; #秒、分、時、日、年、月、曜日 ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime; $mon++; $year += 1900; #曜日を日本語化 @week=('日','月','火','水','木','金','土'); $wday=$week[$wday]; #<input type>のnameを読み込む。 $name = $in{'han'}; $text = $in{'text'}; #日本語レコード &jcode'convert(*name,'euc'); &jcode'convert(*text,'euc'); #文字列置換 $name = ~s/</555/; #改行二つ書かないといけないみたい。 print "Content-type: text/html\n\n"; print "<html>\n"; print "<head>\n"; print "<title>テスト</title>\n"; print "</head>\n"; print "<body>\n"; print "テストです。<br>\n\n"; if($in{'han'} eq ''){ print "何も入力されていません。<br><br>\n"; exit(); } print "貴方が入力した名前は $name ですね。<br><br>\n\n"; print "$text<br><br>\n\n"; print $ENV{'PATH'},"<br><br>\n\n"; &file2(); print "書き込みリスト<br><br>\n\n"; &file(); print "</body>\n"; print "</html>\n"; sub file{ open(IN,"test.txt"); while(<IN>){ print; } close(IN); } sub file2{ open(IN,">>test.txt"); print IN "<hr>訪問者:$name $year年$mon月$mday日($wday)$hour:$min:$sec<br><br>\n\n"; print IN $text,"<br><br>"; print IN "IPアドレス:$addr<br><br>\n\n"; print IN "アクセス元:<a href=\"$access\">$access</a><br><br><hr>\n\n"; close(IN); } ========================== $name = ~s/</555/; が、 4294967295 にどうしてもなります。^^; (置き換え後の文字列を他のに変更しても必ず、 4294967295 になります!) 分かる方、いらっしゃいますか? あと、日本語の変換が出来ません。(汗) それと、ぷららのサーバがかなり重たいのですが、どうすれば宜しいでしょうか? ご迷惑をおかけいたしますが、どうか、宜しくお願いいたします。
- ベストアンサー
- その他(ソフトウェア)
- 何故?Forbidden
infoseek/iswebを利用している者です。 FFFTPを使用し、ASCIIモードでcgi-binフォルダに転送、 ブラウザ上からiswebのファイルマネージャーにアクセスし、 アップロードしたファイルを閲覧するとForbiddenエラーになります。 kent-webで配布されているperlのバグチェックのツールを使用すると SyntaxOK と出ています。 こういうようなプログラムです。 #!/usr/local/bin/perl use strict; my $hensu=100; if($hensu == 100){print "hensu = $hensu<br>\n";} my $hensu2 = 'aa'; my $hensu2_1 = $hensu2 + 1; print "hensu2 = $hensu2_1<br>\n"; my $hensu3 = '10A0'; my $hensu3_1 = $hensu3+1; print "hensu3_1 = $hensu3_1<br>\n"; 一体何がおかしいのか分かりません。 どなたか回答お願いします。
- 締切済み
- CGI
- perlで、[ \r\n , \n ]の意味は?
シンプルなCGI掲示板の勉強中ですが、 $message =~s/[ \r\n , \n ]/<br \/>/g; となっており、 これは改行文字を<br />に置き換えるのだそうですが、 [ \r\n , \n ]の部分というのはどういった意味でしょうか。 [ abc ]だと、a,b,cのうちどれか1文字は入っていれば良いですよね。 [ ]に「,」が入るとよく分からなくなります。 お分かりの方、教えてくださいませんか。 よろしくお願いいたします。
- ベストアンサー
- CGI
- perl cgiで正規表現が無限にマッチする
perl でcgiを作っています。フォームから受け取ったテキストから、正規表現を用いて、データを切り出そうと思っています。 以下のようなコードを書くと、マッチするのは一か所だけのはずなのに、無限回数マッチしてprintしつづけます。なにが間違っているのでしょうか。ご指導ください。 my $text = $in_data{'data_text'}; #フォームから受け取る $text =~ tr/+/ /; $text =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; # invalidation $text =~ s/[<>"'&\r\n]//g; $text =~ s/&/&/g; $text =~ s/</</g; $text =~ s/>/>/g; $text =~ s/"/"/g; $text =~ s/'/'/g; $text =~ s/\r\n/<br>/g; $text =~ s/\n/<br>/g; $text =~ s/\r/<br>/g; while ( $text =~ /Line(\d{1}):長さ:(\S+) km/){ print "Line$1: $2<br>"; }
- ベストアンサー
- Perl
- すでにユーザー登録をしたのですが、パソコンの使用者が違うため登録したユーザーを変更したいのですが、何かいい方法はありませんか?
- 購入したZERO スーパーセキュリティを使用していますが、パソコンの使用者を変更するためにはどうすればいいですか?
- ZERO スーパーセキュリティのユーザー登録を変更する方法を教えてください。
お礼
ご回答ありがとうございます。 おっしゃるとおり、Perlです。 独学で、少しずつ進んでいるので、まだまだコピーアンドペーストの域を出ておりません。 なので、こういうミスに陥ってしまいました。 今回は、分かりやすい解説とご意見本当にありがとうございました。