• ベストアンサー

コードの中に &#32 とあるのですが、意味と何を処理しているのか分りません。

有名な方のコードを勉強していたところ、以下のようなコードがありました。 その中に &#32 という部分がありましたが、調べても分りません。 $i=0; while(<IN>){ $i++; . . . print "[<b>$no</b><b>$sub</b>&#32"; print "投稿者:<b>$name</b><small>投稿日:$date</small>&#32"; print "[<a href=\"$script?mode=resmsg&no=$no\">返信</a>]<br>\n"; print "<blockquote>$com<p>$url</blocquote><hr>\n"; } とあります。 &#32 の部分が分りません。教えて下さい。

  • Perl
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

&#32はパールの仕様ではなくHTMLの仕様で、スペースが表示されるようになっています。 &#xxx; とプリントすると、HTMLではxxxに対応する文字コードの文字を表示してくれます。 この文字コードはUNICODEという2バイトの整数で0~65535を指定できます。 最後の方は定義されていませんが・・・。 ちなみにHTMLでスペースを連続して書いても、1つのスペースとみなされてしまいます。 print "<p>スペース→ ←スペース</p>"; などと書いても、1つのスペース分しかあきません。 たくさん連続するスペースをプリントしたい場合は、 "&nbsp;" 又は " " をプリントすると、お望みどおりの結果が得られます。

ctpsys
質問者

お礼

有難うございました。 大変良く分りました。 また、よろしくお願いします。

その他の回答 (1)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

&#32 は半角スペースですね。 参考URLには載っていませんが他にもいろいろあります。

参考URL:
http://www.e-words.ne.jp/page.asp?p=r-htmlentity
ctpsys
質問者

お礼

有難うございました。 大変良く分りました。 また、よろしくお願いします。

関連するQ&A

  • 半角スペースを消すだけです

    スクリプトの途中からです。 print "<blockquote>$com</blockquote><hr color=$line_color>\n"; } } close(IN); # タイトル名 if ($resub !~ /^Re\:/) { $resub = "Re\: $resub"; } print <<"EOM"; <a name="RES"></a> Re: の後に続く半角スペースを無しにしたいんですが、 どこをどうやったらよろしかったんですやろか…。 暇なときにでもお願いします。

    • ベストアンサー
    • CGI
  • 検索結果の表示形式を表形式にしてだしたいのですが・・・

    CGI初心者です。データベース検索のCGIをフリーからカスタマイズをかけて利用を試みています。今の状態では、検索結果が、 print "<LI><a href=\"$script?mode=view&no=$no\">$sub</a>\n"; 状態で表示されます。 が、これをメンテするときの一覧状態にしたいのです。 メンテ時の表示プログラムは、 # 管理画面を表示 &header; $count = @lines; print "<center>\n"; print "<form action=\"$script\" method=\"$method\">\n"; print "<input type=hidden name=pass value=\"$in{'pass'}\">\n"; print "<input type=hidden name=mode value=\"admin\">\n"; print "<input type=hidden name=action value=\"delete\">\n"; print "<table border=1 cellspacing=1><tr>\n"; print "<th>削除<th>料理名<th>食種<th>食材<th>調理法<th>コメント</tr>\n"; foreach $line (@lines) { local($no,$sub,$com,$p1,$p2,$p3) = split(/<>/, $line); $com =~ s/<br>/ /g; $com =~ s/</&lt;/g; $com =~ s/>/&gt;/g; if (length($com) > 60) { $com = substr($com,0,58); $com = "$com" . '..'; } print "<tr><th><input type=checkbox name=del value=\"$no\"></th>"; print "<td><b><a href=\"$script?mode=mente&no=$no\">$sub</a></b></td>"; print "<td>$part1[$p1]</td><td>$part2[$p2]</td><td>$part3[$p3]</td>"; print "<td><small>$com</small></td></tr>\n"; } print "</table><P>\n"; です。どうしたら、メンテ時のような一覧の表形式で表示できるのでしょうか? あと、あまりに言語がわからないので、なにか良い参考書及びHPがあれば教えてください。

    • 締切済み
    • CGI
  • うまく書き換えが出来ない。

    記事修正画面部分の構築中です。 現在以下のような感じです。 sub edit3 { # ログファイル読み込み open (FILE, "$data") || &error("ファイルが開けません"); @data = <FILE>; close(FILE); # カウント退避 $count = shift (@data); foreach $line (@data) { ($no,$n1,$a1,$com1,$n2,$a2,$com2,$n3,$a3,$com3,$n4,$a4,$com4,$n5,$a5,$com5,$name,$nani,$kou1,$kou2,$pass) = split(/<>/,$line); chomp; if ($in{'edit_no'} eq $no){ $line = "$no<>$in{'n1'}<>$in{'a1'}<>$in{'com1'}<>$in{'n2'}<>$in{'a2'}<>$in{'com2'}<>$in{'n3'}<>$in{'a3'}<>$in{'com3'}<>$in{'n4'}<>$in{'a4'}<>$in{'com4'}<>$in{'n5'}<>$in{'a5'}<>$in{'com5'}<>$in{'name'}<>$in{'nani'}<>$in{'kou1'}<>$in{'kou2'}<>$in{'pass'}<>\n"; } else {$line = "$no<>$n1<>$a1<>$com1<>$n2<>$a2<>$com2<>$n3<>$a3<>$com3<>$n4<>$a4<>$com4<>$n5<>$a5<>$com5<>$name<>$nani<>$kou1<>$kou2<>$pass<>\n";} push(@new,$line); } # ログを更新 unshift(@new,"$count"); open(OUT,">$data") || &error("修正処理を失敗しました"); print OUT @new; close(OUT); &pass; } さて、この状態で複数ある情報の一番最新のものを更新すると、一番古いものまで書き換えられてしまいます。(1.2.3と記事があった場合、3を修正すると、3と1が修正されてしまう) どこがおかしいのでしょうか?自分では間違っているようには見えないのですが… 修正・改善をお願いします。

    • ベストアンサー
    • Perl
  • 表示を一覧表形式にしたいのですが組みかたを教えてください。

    検索データを一覧表で表示したく、いろいろやってみたのですができません。なぜできないのか、どこがいけないのかおしえていただきたいのですが・・・ 一応、一覧表で表示されていたスクリプトをお手本にやっていたのですが、知識がなさすぎてわかりません。よろしくおねがいします。 sub search { &header; print "<table border=1 cellspacing=1><tr>\n"; print "<th>情報提供者<th>ユーザ名<th>業務<th>顧客管理元<th>責任者<th>コメント</tr>\n"; # キーワード前準備 $in{'word'} =~ s/ / /g; @word = split(/\s+/, $in{'word'}); open(IN,"$logfile") || &error("Open Error : $logfile"); $i=0; while (<IN>) { ($no,$sub,$com,$p1,$p2,$p3,$p4) = split(/<>/); if ($in{'P1'} ne "99" && $in{'P1'} ne "$p1") { next; } if ($in{'P2'} ne "99" && $in{'P2'} ne "$p2") { next; } if ($in{'P3'} ne "99" && $in{'P3'} ne "$p3") { next; } if ($in{'P4'} ne "99" && $in{'P3'} ne "$p4") { next; } # キーワードマッチ $flag=1; foreach $key (@word) { if (index($_,$key) >= 0) { $flag=1; } else { $flag=0; last; } } if (!$flag) { next; } $i++; print "<td><b><a href=\"$script?mode=view&no=$no\">$sub</a></b></td>"; print "<td>$part1[$p1]</td><td>$part2[$p2]</td><td>$part3[$p3]</td><td>$part4[$p4]</td>"; print "<td><small>$com</small></td></tr>\n"; print "</table><P>\n"; } close(IN);

    • ベストアンサー
    • Perl
  • cgi出力での文字コードについて

    下記のソースをsjisで作っていて、出力するdata.txtをuft-8で保存したいです。 どのようにすればよいでしょうか? 下記ソースでは、data.txtはsjisになっています。 尚、htmlはsjisなのでそのまま使用したいです。 どなたか教えてください。 宜しくお願いします。 ############################# #!/usr/local/bin/perl require 'jcode.pl'; require 'cgi-lib.pl'; &ReadParse; $datafile='data.txt'; ←これの保存のみutf-8にしたい open(FH,">$datafile"); print FH "$in{'name'}"; close(FH); rint "Content-type:text/html\n\n"; print "<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>"; print "<html><head></head><title>テスト</title><body>\n"; print "<center>入力完了しました。</center><hr /><br>\n"; print "<b>名前:</b>$in{'name'}<br>\n"; print "<hr />\n"; print "</body></html>";

    • 締切済み
    • CGI
  • コードを簡素化したいです

    こんにちは。お世話になります。 元々、$modeは、time()から取得したもので、「1090693556」のように、数字データです。 ですが、後処理によって、一部の$modeに別の変数を代入して、下記のような処理をさせました。 if(($mode == "jun_0001") || ($mode == "jun_0002") || ($mode == "jun_0003") || ($mode == "jun_0004")){ echo "...........\n"; } それで、現在はjun_0001~jun_004の4つですが、もっと数が増えると辛いので、preg_matchでも使った、シンプルコードには出来ないでしょうか? 教えて下さい。

    • ベストアンサー
    • PHP
  • 掲示板(kentさんの所のsunbbs)に1分おきにリフレッシュする方法

    kentさんの所の掲示板のsunbbsについてです。 自動で掲示板を1分おきとか2分おきに自動更新する方法を 探しています。 リフレッシュの文を入れればいいのかもしれませんが どこにどのようにいれればいいのか分かりません。 よろしくお願いします。 下に関係のありそうなところをコピーいたします。 違うかもしれませんが。 #------------------------------------------------- # HTML生成処理 #------------------------------------------------- sub html_regist { local($i,$next,$back,$data); local($file,$page) = @_; open(WR,">$file") || &error("Write Error: $file"); print WR &header('HTML'); # リンク部 print WR "<B><font color=\"$p_color\">$point2</font>"; print WR "<a href=\"$home\" target=\"_top\">Home</a>\n"; if (!$whatsnew) { print WR "<font color=\"$p_color\">$point</font>"; print WR "<a href=\"$script?mode=form\">Post</a>\n"; } print WR "<font color=\"$p_color\">$point</font>"; print WR "<a href=\"$script?mode=find\">Search</a>\n"; # 過去ログ if ($pastkey) { print WR "<font color=\"$p_color\">$point</font>"; print WR "<a href=\"$script?mode=past\">Log</a>\n"; } print WR "<font color=\"$p_color\">$point</font>"; print WR "<a href=\"$script?mode=admin\">Admin</a></B>\n<div align=center>\n"; # タイトル部 if ($t_gif eq '') { print WR "<font color=\"$t_color\" size=6><b style=\"font-size:$t_size\">$title</b></font>\n"; } else { print WR "<img src=\"$t_gif\" width=$tg_w height=$tg_h alt=\"$title\">\n"; } # ひとことメッセージを表示 $message =~ s/\r\n/<br>/g; $message =~ s/\r/<br>/g; $message =~ s/\n/<br>/g; print WR "<P>$message</div><hr>\n"; # 記事を展開 if ($page == 2) { $next = $pagelog+1; $last = $max; } else { $next = 0; $last = $pagelog; } $i=0; open(IN,"$logfile") || &error("Open Error: $logfile"); while ($data = <IN>) { $i++; if ($i < $next) { next; } if ($i > $last) { last; } print WR &log_view($data, $page); } close(IN); if (!$whatsnew) { print WR "<table align=left><tr>\n"; } # 次/前ページのリンクを生成 if (@lines > $pagelog && $page == 1) { print WR "<td><form action=\"$htm_url$nexthtm\">"; print WR "<input type=submit value=\"次ページ\"></td></form>\n"; } elsif (@lines > $pagelog && $page == 2) { print WR "<td><form action=\"$htm_url$htmfile\">"; print WR "<input type=submit value=\"前ページ\"></Td></form>\n"; } print WR "</table>\n"; # 削除フォーム if (!$whatsnew) { print WR "<table align=right><tr><td>\n"; print WR "<form action=\"$script\" method=\"POST\">\n"; print WR "記事No <input type=text name=no size=4>\n"; print WR "削除キー <input type=password name=pwd size=4>\n"; print WR "<input type=hidden name=mode value=userdel>\n"; print WR "<input type=submit value='記事削除'></td></form></table><br clear=all>\n"; } # 著作権を表示(削除不可) print WR "<div align=center style='font-size:10px;font-family:Verdana,Helvetica,Arial'><!-- $ver -->\n"; print WR "- <a href='http://www.kent-web.com/' target='_top'>SunBoard</a> -\n"; print WR "</div>\n</body>\n</html>\n"; close(WR); }

    • ベストアンサー
    • CGI
  • 意味を教えてください

    初心者なのですが、sendmailのプログラムを勉強していて、意味がどーしても分からないので教えて下さい。 #メール本文 my $mailbody = "以下の通りメールフォームより送信がありました。\n\n"; $mailbody .= "送信日時 = $now\n"; foreach my $i (0..$#key){ #modeはスキップ if($key[$i] eq "mode"){next;} #改行変換(タブ→\n) $val[$i] =~s/\t/\n/g; #メール本文 $mailbody .= "$key[$i] = $val[$i]\n"; } で、 (1)$mailbody .=の.=って何ですか?何で=の前に.が付いているのですか? (2)(0..$#key){ の所、$#key なぜ$の次にコメントの始まりである#が付いているのでしょうか? 自分なりに調べたのですが、どーしても分からなくてどなた様かお教え願えないでしょうか。よろしくお願い申し上げます。

  • メイルフォームの本文が文字化け

    サーバーを移転してからある特定のソース部分だけ不具合が出ました。 ユーザーがログイン後特定のユーザーにアドレスを公開せずに、メッセージをおくり、その内容がユーザのアドレスに受信するというものなのですが、 その受信するメイルが文字化けしてしまいます。 その他にサイト上からおなじCGIファイルを利用して、管理者などにおくるメイルは正常に機能しています。 ■不具合が出ている部分のソースです。 if (!open(OUT,"| $SENDMAIL -t")) print OUT "Reply-To: $ADMIN\n"; print OUT "Errors-To: $ADMIN\n"; print OUT "To: $MAIL_TO\n"; if ($BCC == 1){ print OUT "Bcc: $ADMIN\n"; } print OUT "From: $ADMIN\n"; &jis("Subject: $SUBJECT"); print OUT "$msg\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT 'Content-Type: text/plain; charset=iso-2022-jp' . "\n\n"; &jis("$NAME_FROM:$FORM{'MSG'}"); print OUT "$msg\n"; &jis("▽返事はココから"); print OUT "$msg\n"; &jis("$bbs_cgi1?M=H&T=$ID_FROM&I=$ID_TO&PASS=$PASS_TO"); print OUT "$msg\n"; close(OUT); } print "Content-type: text/html\n\n"; print "<html><head><title>$TITLE</title></head><body>■送信完了<HR> $NAME_FROMさんより$NAME_TOさんへメール送信完了しました。<hr>\n"; print "[<a href=$menu_cgi?mode=menu&I=$MYID&PASS=$MYPASS>メニューに戻る</a>]<br>\n"; print "</body></html>\n"; exit; } ■文字化けは aika!' (Basd "&JV;v$O%3%3$+$i (B ような感じです。 かなりいろいろ探してみたのですが、だめなので ここに投稿しました。 わかる方いらっしゃいましたら、どうぞご回答いただければと思います。よろしくお願いします。

    • 締切済み
    • CGI
  • おかしなif文だと思うのですが、どう思われますか?

    $a=10; $b=20; if($a>=$b){ print "\$aは\$bと等しいかおおきいですよ。\n"; } elsif($a>$b){ print "\$aは\$bより大きいです。\n"; } elsif($a<$b){ print "\$aは\$bより小さいです。\n"; } ある例題のif文なんですが、 $a>=$bで$a>$bは内包されているはずなので elsifの例として不適切ですよね。 どう思われますか?

    • ベストアンサー
    • CGI

専門家に質問してみよう