• ベストアンサー

文末のスペース(改行)

●1回目 ログファイルからランダムに1行分を表示する。 その下にテキストボックスを表示し、入力を促す。 ●2回目 さきほど入力されたものと表示されたものがあっているかどうかを確認し、分岐 というような流れのcgiを作成しました。 ログファイルから持ってきたものが、改行が入っているため、半角スペースが入っています。 なので、 chomp $FORM{'KEYWORD1'}; として、改行を削除しました。 ローカルの時点ではうまくいっていたのですが、アップロードすると、改行が消えていません。 改行を削除するのはchompでは駄目なのでしょうか?

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

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

文末だけでなく変数中(ここでは連想配列ですが)の改行全て削除するなら、 $FORM{'KEYWORD1'} =~ tr/\x0D\x0A//d; 文末だけなら、 $FORM{'KEYWORD1'} =~ s/\x0D?\x0A?$//;

w-inty
質問者

お礼

無事できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • lucky365
  • ベストアンサー率44% (32/72)
回答No.2

chompは実行環境での改行コードで判断します。 ローカルとサーバーではコードが異なると思いますので、転送モードを変えてアップロードみてはいかがでしょうか。

w-inty
質問者

お礼

回答ありがとうございます。 転送モードとは、バイナリモードとアスキーモードということでしょうか? 変えてみたところ、cgiが実行されなくなってしまいました。

全文を見る
すると、全ての回答が全文表示されます。
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

正規表現を使うのはどうですか? $FORM{'KEYWORD1'} =~ m/^(.*+)(\r|\n)+$)/; $FORM{'KEYWORD1'} = $1; なんて感じで行けるんじゃ無いかな。って思います。 試していませんが(^_^;)

w-inty
質問者

お礼

回答ありがとうございます。 chompで駄目でしたら試してみます。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 改行コード変換

    先に「chompの使い方」で質問したものです。 文字コードを調べたところ、改行が「^M」で表示されていました。 テキスト文書ファイルもCGIプログラムも文字コードはEUCにしてありますし、改行コードもLFにしているんですが、フォームで入力される改行コードはCR+LFになっているようです。 これはどうやって制御すれば(全ての改行をLFにする)よいのでしょうか? ご教示いただけるとうれしいです。よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 改行文字保存時のゴミ

     現在、フォームからのデータ入力などに関して勉強しているのですが、<textarea>からデータを入力すると、1バイトの改行文字が、改行ごとにくっついてきます。  改行自体はされるんですが、その余計なものが付いてくるのが困っています。何かしらのスクリプトをダウンロードしたときなども、時々改行部分が半角の■に変わってまして、つまり改行されずにごっちゃになって表示されてしまいます(別の方法で置換処理できるので自分はどーでもいいんですが)。  他のパソコンから同じCGIをアップロード、実行してみると、以外にもそういった影響はありませんでした。何となく、文字コードが機種とか環境などによって違ってるせいかな、とは感じているのですが、対処法が分かりません。  スクリプトにどういった手を加えれば、これが出ないようにできるのでしょうか?どうかご教授をお願いします。

    • ベストアンサー
    • CGI
  • </form>タグを使用すると強制的に改行されてしまいます・・・

    <FORM action="http://log.cgi" method="post"> <INPUT type="submit" value="b1"></FORM> <FORM> <FORM action="http://log2.cgi" method="post"> <INPUT type="submit" value="b2"></FORM> とすると,強制的に改行されてしまい何とか,ボタンを,並列することは出来ないでしょうか?

    • ベストアンサー
    • HTML
  • 改行コードが半角スペースになってしまいます

    もしかしたらカテゴリはphpかも知れません。 よろしくお願いします。 phpとMySQLでWEBアプリを作っています。html上のtextareaフォームに入力した文字列を、phpを使ってMySQLにINSERTします。この文字列には改行(CRLF)も含まれます。 それをSELECTで参照し表示させると、改行が半角スペースに変換されてしまいます。 phpMyAdminで見てみるとちゃんと改行が入っています。 つまり、格納の段階ではちゃんと改行コードが入っているんですが、取り出すときに変換されてしまうようです。 この場合、どのように対処すればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • メールフォーム(Smarty)の改行について

    textareaに入力した文章がoutlookで受信するとどうしても 改行ではなく半角スペースになってしまいます。 (内容確認画面では正常に改行されて表示されます) 試しにYAHOOメールで受信してみたところ正常に改行されて表示されました。 outlookで受信した場合にも正常に改行された状態で受信したいのですがどのようにしたらいいのでしょうか? nl2br($_POST["msg"]);としてみたのですが結果変わらずです・・・ phpの改行コードはLFで文字コードはUTF-8Nです。 phpファイルのtextarea部分の読み込みは以下の通りです。 $form->addElement('textarea', 'msg', 'お問い合わせ内容', array('rows' => 8, 'cols' => 30,)); tplファイルには <th>■ {$form.msg.label}</th> <td>{$form.msg.html}</td>としています。

    • 締切済み
    • PHP
  • HTMLで開いたsrcの改行コードを調べる方法を教えてください

    cgiでHTMLを作成していますが、cgiを実行した時に HTMLで改行が2個入ってしまいます。 unix上のファイルをfgetsにて1行ずつ読み込んで そのまま出力しています。 改行コードを削除したいのですが、 表示しているHTMLのsrc内にある改行コードに何(どの改行コード)が入っているのか分からず、削除できません。 (fgetsで読み込んだ1行の最後に"\0"が入っていると思って、それを削除してみたのですが、駄目でした。このやりかたは間違えていますか?正しい方法を教えてください。) 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • スペースの削除ができません

    Perl初心者です。教えていただきたいことがあります。 CGIですが、HTMLのフォーム(テキストボックス)に名前を入力してもらうような場合に、名字と名前の間にスペースがあったりなかったりする状態が混在するのを避けるため、すべてスペースなしで値を受け取りたいと考えています。 仮に、"NAME"というテキストボックスとした場合、 $FORM{'NAME'} =~ s/ //g; $FORM{'NAME'} =~ s/ //g; このようにすれば、半角・全角スペースを削除できると思うのですが、どういうわけか動きません。スペースが入ったままで値が返ります。 ちなみに、CGIのファイルはEUCにしているのですが、なぜかSJISにすると動きます。ただ、SJISにすると別の支障があるのでできません。 情報が不足しているかもしれませんが、原因の検討がつきません。どなたが、考えられる原因をご指導いただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • スペースは残し改行のみ削除するには?condenceWhite

    テキストフィールドに外部ファイルからテキストファイルを読み込んでいます。 例えば次のようなhtmlタグを含む外部ファイルを読み込みたいとき(アンダーバーはスペースとして見てください) text= 2007.1.1_ほげほげ<br> _________ほげほげ2<br><br> 2007.1.2_ほげほげ<br> _________ほげほげ2 condenceWhite = falseであれば、<br>も含め改行が二回入り、 ================================= 2007.1.1 ほげほげ ________ ほげほげ2 2007.1.2 ほげほげ ________ ほげほげ2 ====================================== と表示されると思います。 改行が二回入るのを防ぐために、condenceWhite = trueにすると、今度は、スペースが消されて ================== 2007.1.1 ほげほげ ほげほげ2 2007.1.2 ほげほげ ほげほげ2 ================== となると思います。 スペースを消さずに余分な改行だけ消す良い方法はないのでしょうか?

    • ベストアンサー
    • Flash
  • EXCELでのスペースと改行について

    結合したセル内に文章を入力する際、2行以上にわたると、途中で入力したスペースから勝手に改行されてしまいます。EXCEL2003ではそのようなことが起こらなかったのですが、スペースを入れても改行されない方法を教えてください。 セルの書式設定は、 横位置:左詰め、または標準 縦位置:上詰め 「折り返して全体を表示する」「セルを結合する」にチェック。 Windowsの設定で、スペースは常に半角にしています。 ■がスペースと仮定すると、 あいうえおかきくけこ さしすせそたちつてと のような2行以上の文章にスペースを入れると、 あいう■ えおかきくけそさしすせそ・・・ のようになります。 また、1行に2つ以上のスペースを入れると、 あいう■えおかき■ くけそさしすせそ・・・ のように、一番最後のスペースで改行されます。 昔にEXCEL2003で作成していた文章も、同様の書式に変えられ、スペースが入っているところで勝手に改行されており、とても見にくく(醜く)なっています。 色々ネット上で調べ、「検索にはCtrlとJを押す、置換にスペースを入力」、というやり方を見つけましたが、試してみたところ、「置換対象のデータが見つかりません。・・・」というポップアップが出、うまくいきませんでした。 どなたか、ぜひご教示下さい。よろしくお願いします。

  • textareでの改行

    ホームページ上のtextareaで入力してもらった情報を取得するCGI(perl)スクリプトを書いています。流れとしては,フォーム上で入力した情報をCGIで取得→確認画面を表示→問題無ければメールフォームとして送信,となっています。 このスクリプト上で問題となっているのが,textareaでは自動的に改行処理(wrap=softと同じ?xhtmlで書いているので,wrap属性は指定していません。)するときに入力される改行コードと,入力者が意図的に入力する改行コードを判別出来ないということです。自動的に挿入される\n(0x0A)を削除しようとスクリプト上で, $text =~s/\r\n/\n/g; $text =~s/\r/\n/g; $text =~s/\n//g; と入れたところ,全ての改行コードが変換処理されてしまい,入力者が意図的に入れた改行コードまで処理されてしまいます。 スクリプト上,もしくはxhtmlと組み合わせて,自動的に挿入される改行コードだけを消去して,意図的に入力した改行コードだけを残す処理は出来ないものでしょうか? phpなどを使うと出来るようですが,ある程度perlのcgiで作成してしまったので,このままで出来ればと思っています。よろしくお願いします。

このQ&Aのポイント
  • サインイン画面で背景を鮮明にしたい方法について詳しくご説明します。
  • ご利用のノートパソコンのサインイン画面で背景を鮮明にする方法について解説します。
  • サインイン画面の背景をクリアにする方法をご紹介します。
回答を見る