textareaでのcsv内の改行について

カキハラさん (2013-05-07 12:29:28) http://kingprinters.sakura.ne.jp/mailformtest/example.html

お世話になっております。
mailformproの4.09を使わせて頂いております。

こちら、csvをダウンロードする際にtextarea内での改行が
"1行目
2行目
3行目"
となっているのを
"1行目 2行目 3行目"
とスペースにするように出来ますでしょうか?
スペースは無しでも構いません。

現状のデフォルトの""内に改行があるとcsvを読み込めないソフトがあるためです。

mailformpro3の時は問題無かったかと思います。

また、メール本文ではtextareaの内容は入力された通りに改行されているのが良いのですが可能でしょうか?

ご多忙かとは思いますが御返事お待ちしております。

Re:textareaでのcsv内の改行について

和田 (2013-05-09 06:50:17) www.synck.com

多少、CGIの知識は必要になりますが、以下のソースを編集することでできると思います。
/mailformpro/librarys/CSVExport/run.cgi

自由整形を使っている場合は
$_TEXT{’CSV’} =~ s/\n//ig;
$_TEXT{’CSV’} =~ s/\r//ig;

自由整形を使っていない場合は
$csv =~ s/\n//ig;
$csv =~ s/\r//ig;

って感じですかね?

Re:textareaでのcsv内の改行について

カキハラさん (2013-05-09 15:54:15) http://kingprinters.sakura.ne.jp/mailformtest/example.html

御返事ありがとうございます。

該当箇所がわからず、手当たり次第に入れてみたところ
21行目の辺りで
$value =~ s/\n//ig;
$value =~ s/\r//ig;
にしたら出来たようです。

また、何かありましたらよろしくお願いします。

Re:textareaでのcsv内の改行について

hiddeさん (2013-12-07 19:49:18) 未定

同じ問題に当たったのですが、

和田さんの回答も、カキハラさんの記事も試したものの、どうやってもうまくいきません。
元々のrun.cgi の21行目では、下記のようになっています。
$value =~ s/¥"/¥"¥"/ig;
ここで改行コードを置換するように思えるのですが、カキハラさんのようにしてもダメなようです。

もう少し具体的にご教示いただけませんでしょうか?
よろしくお願い致します。

Re:textareaでのcsv内の改行について

hiddeさん (2013-12-08 14:23:05) 未定

原因が分かりました。
和田さんの書かれていたコードを、そのままコピペしてテキストエディタで貼り付けていたのですが、この中のシングルクオートが多バイト文字として記入されてしまい、サーバがエラーを返していました。
自由整形を利用しているので、このシングルクオートをエディタ上で直接手入力し、
run.cgi の1行目
use Encode;

の後に

$_TEXT{’CSV’} =~ s/¥n//ig;
$_TEXT{’CSV’} =~ s/¥r//ig;

を入れることで解決できました。
お騒がせしました。ありがとうございました。