• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PerlのCGIで投稿された文字を縦書きに。)

PerlのCGIで文字を縦書きにする方法

DKGの回答

  • DKG
  • ベストアンサー率40% (2/5)
回答No.4

こんな感じでどうでしょう? ------------------------------------------------- # 縦書きにする文字列 $str = 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわおん'; # 折り返す文字数 $end_line = 5; # $str を文字単位に分割して配列 @chars に代入する # http://www.din.or.jp/~ohzaki/perl.htm#JP_Split(Perlメモ) $ascii = '[\x00-\x7F]'; $twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]'; $threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]'; @chars = $str =~ /$ascii|$twoBytes|$threeBytes/og; # 一つ一つの文字に<br>を付け加えながら%kaに5文字ずつ代入 foreach(@chars){ $_ .= "<br>"; if(($i % $end_line)==0){$d++;} $ka{$d} .= $_; $i++; } # 行数 $h = int($i / $end_line); if(($i % $end_line) > 0){$h++;} print "Content-type: text/html\n\n"; print '<meta http-equiv="content-type" content="text/html; charset=euc">'; print "<table>\n<tr>\n"; for($g=$h;$g>0;$g--){ print "<td valign=\"top\" align=\"center\" width=\"1\">$ka{$g}</td>\n"; } print "\n</tr>\n</table>"; ------------------------------------------------- TABLEの余白を広げたり、スタイルを使うともっときれいに表示されると思いますよ。もちろん文字コードはEUCじゃないとちゃんと動きません^^ あとnatsuki_tkさんの言う通り半角は全角にしてあげるともっときれいになると思います。

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm

関連するQ&A

  • 文字が縦書きに・・・

    Access97を使用しています。  フォームやレポートで、作ったラベルやテキストボックスのフォントを変更すると、なぜか縦書きになってしまうんです!(文字が左に90°回転した状態というか・・・)  一体なぜなのでしょう?”縦書き”プロパティはちゃんと”いいえ”になっています。ちなみに、文字が半角英数字だとちゃんと表示されます。  何かおかしな設定でもしてしまったのでしょうか?少し簡単な説明かもしれませんが、何か考えられる原因があれば教えてください!

  • フォーム入力のチェック

    フォームの入力をCGI(Perl)でチェックするとき、 全角の漢字、カタカナ、ひらがなでの入力以外は禁止にしたいです。 どなたかいい方法をご存知でしょうか? とりあえず、現在は、 jcode.plで全角英数字⇒半角英数字に変換 フォームに入力された文字列を一文字(半角2文字)ずつ抽出して、 $a=~ s/([^\w ])/'%' . unpack("H2", $1)/eg; でエンコードしたものが%を含んでいるかどうかで判別してます。 でもこれだと全角英数字と半角英数字しかシャットアウトできません。 記号文字なども入力出来ないようにしたいです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • [Perl] unpackで不要文字にエンコード

    Perl CGIについてです。 文字列をエンコードしようと次のようにしてみました。 $val1 =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $val2 =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $va1は問題なくエンコードされ、デコードも元文字に戻ったのですが、 $va2のエンコード文字に不要な'25'が含まれるようになってしまいました。 例:「ガム」をエンコード >> %A5%AC%A5%E0  を期待していたのですが、結果は %25A5%25AC%25A5%25E0 と不要に'25'が含まれてしまいました。unpackの文が悪いのでしょうか?ご教示ください。

    • ベストアンサー
    • CGI
  • perlで英数字を取り出すには?

    Perlで英数字下記の条件で取り出したいのですがどのようにすればよいでしょうか? ご返答いただけるととても助かります。 宜しくお願い致します。 条件 英数字と半角文字とスペースのみを取り出したい。(それ以外の文字は半角スペースに置き換えたい。) また、連続するスペースは削除したい。 ------------------ $str ='※第25回Ski Festival開催'; $str =~ ???????[0-9A-Za-z ] print $str; ------------------ 期待する結果 25 Ski Festival

    • ベストアンサー
    • CGI
  • Perl初心者ですが

    Perl初心者ですが、次の内容を説明してください。 $Word =~ s/(\W)/$escape{$1} ||= sprintf("%%%02X", ord($1))/eg;

    • ベストアンサー
    • Perl
  • Perlでの複数行にわたるコメント

    Perlにおいて複数行コメントを記述するには =for comment コメントを記述 =cut と書けるとのことですが =for commentと=cutの間に 以下のように1行のコメントが記述されていても問題ありませんか? =for comment #名前をチェック if ($FORM{'name'} eq "") { $error .= "「名前」が入力されていません。$br"; } #タイトルをチェック if ($FORM{'title'} eq "") { $error .= "「タイトル」が入力されていません。$br"; } #コメントをチェック if ($FORM{'comment'} eq "") { $error .= "「コメント」が入力されていません。$br"; } =cut

    • ベストアンサー
    • Perl
  • Perl掲示板での半角英数字自動改行

    初めて投稿させて頂きます。 Perlハンドブックを買って、ネットでも調べてみたのですがわからなかったので質問させて頂きます。 掲示板などで半角英数字(長文)の投稿があった場合 全角英数字に変換する。 という記述はあったのですが、半角英数字のまま表示し、 適当な場所で改行する。というのが見つかりません… 適当な場所というのは、掲示板の記事表示部分のテーブルの端に来ると改行という感じです。 自分でもまだ検索等してみますが、どうぞ宜しくお願いします

    • ベストアンサー
    • Perl
  • 全角文字を縦書きに変換するには・・・

    初めて投稿致します。 wordの文章をpowerpointに貼り付けてみました。 縦書きの文章だったのでページを縦に設定し貼り付けました。 すると半角文字は縦方向に平行に貼り付けれたのですが、漢字を含む全ての全角文字が縦方向と垂直に表示されてしまいます。 試行錯誤をしてみたのですが、何を試みても全く上手くいきません。。。何か良い方法があるような気はするのですが、思いつきません(>_<) 何か良い操作方法があれば教えてください。 ソフトはpowerpoint2003です。

  • perlでテキストから顔文字を抽出するプログラム

    テキストファイルから顔文字を抽出するプログラムを作りたいのですが、行き詰まっています。 一応、正規表現の内容としては、 半角と全角の括弧と前後の記号っぽいものを抽出し、 括弧の中身が「3文字以上半角英数字/全角文字列が続かないもの」という条件で、 抽出すれば上手くいくのかなぁと考えているのですが、上手くperlで表現できていない状態です。 どなたかプログラムに詳しい方で、ソースを記述できる方がいれば、よろしくお願いいたします。

  • 正規表現で、全角文字を半角文字にする方法

    エディター等で使用できる、通常の正規表現で、例えば、全角文字を半角文字にする方法はありますでしょうか? ※つまり、PerlのtrやPHPのstrtrのようなことです。 例えば、正規表現対応のエディターで、サイト全体の全角英数字を半角英数字にするような処理をしたいのですが。

    • ベストアンサー
    • Perl