- ベストアンサー
文末のスペース(改行)
●1回目 ログファイルからランダムに1行分を表示する。 その下にテキストボックスを表示し、入力を促す。 ●2回目 さきほど入力されたものと表示されたものがあっているかどうかを確認し、分岐 というような流れのcgiを作成しました。 ログファイルから持ってきたものが、改行が入っているため、半角スペースが入っています。 なので、 chomp $FORM{'KEYWORD1'}; として、改行を削除しました。 ローカルの時点ではうまくいっていたのですが、アップロードすると、改行が消えていません。 改行を削除するのはchompでは駄目なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文末だけでなく変数中(ここでは連想配列ですが)の改行全て削除するなら、 $FORM{'KEYWORD1'} =~ tr/\x0D\x0A//d; 文末だけなら、 $FORM{'KEYWORD1'} =~ s/\x0D?\x0A?$//;
その他の回答 (2)
- lucky365
- ベストアンサー率44% (32/72)
chompは実行環境での改行コードで判断します。 ローカルとサーバーではコードが異なると思いますので、転送モードを変えてアップロードみてはいかがでしょうか。
お礼
回答ありがとうございます。 転送モードとは、バイナリモードとアスキーモードということでしょうか? 変えてみたところ、cgiが実行されなくなってしまいました。
- Dpop
- ベストアンサー率51% (279/544)
正規表現を使うのはどうですか? $FORM{'KEYWORD1'} =~ m/^(.*+)(\r|\n)+$)/; $FORM{'KEYWORD1'} = $1; なんて感じで行けるんじゃ無いかな。って思います。 試していませんが(^_^;)
お礼
回答ありがとうございます。 chompで駄目でしたら試してみます。 ありがとうございます。
お礼
無事できました。 ありがとうございました。