POSTで改行コードを受け渡すには
- 色々なテキストファイルからCSVファイルを生成するフォームを作成中ですが、改行コードをPOSTで受け渡すとセパレートできません。どう解消すれば良いでしょうか?
- テキストファイルからCSVファイルを生成するフォームを作成中ですが、改行コードをPOSTで受け渡す際に問題が発生しています。解消方法を教えてください。
- フォームにはテキストファイルからCSVファイルを生成する機能がありますが、改行コードをPOSTするとセパレートがうまくできません。どうすれば解消できますか?
- ベストアンサー
POSTで改行コードを受け渡すには
宜しくお願い致します。 色々なタイプのテキストファイルからカンマ区切りのCSVファイルを生成できるフォームを作っております。 テキストデータの状況によってレコードの終端記号、切出すカラム(フィールド)数、カラム(フィールド)の区切記号もしくは文字数で抽出を好きに設定できるフォームなのですが、改行コード『\n』をPOSTで受け渡すとsplit関数でセパレートできません。 split関数の手前で変数に\nを代入した場合は問題なく配列化できます。 POSTで\記号を受け渡す際に何か問題が発生していると思うのですが、どうしてもうまく解消できません。 文字コードはeuc-jpです。 解消する方法をご教授頂けますと大変助かります。
- nikuq
- お礼率75% (477/631)
- PHP
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
もしかしたらブラウザ側で勝手に改行を \n かた \r\n に変えている可能性もあるので、 \r\n と \r を \n に置換してみてはいかがでしょうか。
その他の回答 (2)
- tany180sx
- ベストアンサー率63% (239/379)
\rとかの問題なら split("\r\n|\n|\r", $data) とか思いましたけど もしかして \n とフォームに入力しているという意味? なら \\n \\\\n みたいにするか必要があるかと。 単純な分解なら explode でも。
- yambejp
- ベストアンサー率51% (3827/7415)
状況がよくわかりませんが、普通にできませんか? <? if($_POST){ $array=split("\n",$_POST["test"]); print_r($array); } ?> <form method="post"> <textarea name="test"> hoge fuga piyo </textarea> <input type="submit" value="go"> </form>
関連するQ&A
- テキストボックス内で改行したいです。
テキストボックス内で改行したいです。 テーブルのフィールドにあるスラッシュ区切りのデータ を抜き取り一行づつ表示することができたのですが スラッシュ6つ目でテキストボックス内で改行して テキストボックス内で隣に表示させたいのです。 どのようにしたらよいでしょうか? 解る方教えてはいただけないでしょうか? よろしくお願いします。 下記は途中までのコードです。 'スラッシュ区切りで分割 vaspl = Split(Nz(Forms![フォーム名]![テキストボックス名]), "/", -1, vbBinaryCompare) Forms![F_N1]![詳細テキストN1] = "" '分割結果を一行づつ表示する For Each vret In vaspl Forms![フォーム名]![詳細テキストN1] = Forms![フォーム名]![テキストボックス名] & vret & vbCrLf Next
- 締切済み
- Visual Basic
- 改行コードから改行コードまでをスプリットして配列に取り込む方法を教えて
改行コードから改行コードまでをスプリットして配列に取り込む方法を教えてください。 ファイル「sample.txt」の中に 文字列A 文字列B 文字列C 文字列D 文字列E 文字列F 文字列G と書かれていたとします。このファイルを開き、配列@listに @list = 文字列A\r\n文字列B\r\n文字列C\r\n,文字列D\r\n文字列E\r\n,文字列F\r\n文字列G\r\n となるようなコードを教えてください。 要は二重改行コード\r\n\r\nをスプリッタとして複数の行を配列に取り込む方法です。 よろしくお願いします。
- ベストアンサー
- Perl
- textareaタグに入力された改行コードの扱い
PHPとMySQLを利用して簡単なWEBアプリを作っています。 <textarea>内に入力された文字列をMySQLにINSERTする際、使用しているブラウザによって改行コードの文字数が異なるため、MySQLにINSERTされる文字数が異なってしまいます。具体的にいうと、 --MySQL仕様-- <textarea>内のデータを、MySQLのとあるtableにINSERTする。 そのtableの<textarea>のデータを登録するcolumnにvarchar(1000)を指定している。 --PHP仕様-- <textarea>内のデータをPOSTより受け取り、其の生データを上記設定したcolumnにINSERTする。 (文字数チェックの際、\r\nを\nに変換し、改行コードを1文字として解釈させ、カウントしている。) そのデータを訪問者が閲覧できるようにpreg_replaceで改行コードを<br />に変換し表示している。 INSERTされたデータは再編集できるよう、編集ページを設けている。 ◆問題 ブラウザごとで<textarea>内の改行コードが異なるため、文字数カウントの際、\n、\r、\r\nによって文字数にズレが生じてしまい、その結果varchar(1000)で設定したcolumnでは使用したブラウザによってINSERT可能な文字数が異なってしまう。 ◆質問 ブラウザによって出力される改行コードが異なるため、MySQLのtableにINSERTされる文字数が異なってしまいます。改行コードを1文字と解釈し、ブラウザによる差異をなくす良い方法はありませんか? --自身で考えた方法-- ・varchar(1000)を例えばvarchar(1200)などとし、PHP側のみで文字数の制限を掛ける。 ・一部のサイトでは\r\nを\nに変換し、INSERTするって方法が記載ありました。この方法を選択すると、再編集のページでブラウザを判別し、\nを\r\nに変換する手間があるので仕様変更に手間がかかりそう。 以上となります。独学の自分には「自身で考えた方法」しか思い浮かばず、MySQLに登録する際、ブラウザによる改行コードの文字数の差異の良い方法が浮かびませんでした。何か良い方法をご教授いただけませんでしょうか?宜しくお願いします。
- ベストアンサー
- MySQL
- 改行コードについて
ファイルの文字コードはutf-8で改行コードはLFです。 メール送信時にメール文面の一部にいれるテキストを mysqlに保存しています。 メール送信のソース内でデータを読み込み送信までは できているのですが改行コードを変換したく $msg = str_replace("\r\n", "\n", $msg); とやってみましたが改行されず普通に\r\nと表示され うまく変換ができません。 いろいろと試した結果以下のソースでは正常に改行されました。 $msg = str_replace("\\r\\n", "\n", $msg); メール送信前にデバッグでしてみましたが読み込むデータの 改行部分は\r\nとなっているのは確認済みです。 \を多くつければ改行はできるようなのですがこれは仕様なの でしょうか? またmysqlに入れてあるデータはフォームから入力し登録 しているのですがLFの改行コードは\nなので登録時に\r\nではなく \nと変換してからmysqlに登録するのがいいものなのでしょうか?
- 締切済み
- PHP
- 【C#】特定の改行コードのみで1行ずつ取得したい
C#でツールを作成しています。 テキストファイルの中を1行ずつ読み取りたいです。 ただし、改行コード \r\n と \n が混在しており、 \r\n までを1行として取得したいのです。 ReadToEndで一旦すべての文字列を取得し、 Split("\r\n")で分割という方法で解決はするのですが ファイルサイズが膨大な場合、どうしても処理が重くなってしまいます。 ReadLineなどで上手くできる方法はないでしょうか? よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- C# 文字列を改行コードで分割
C# 文字列を改行コードで分割 テキストボックスに記載された文字列を1行ごとに取り出そうと思い string[] strs = textBox1.Text.Split('\n'); とコーディングしたら、末尾に\rがついてしまいました。 末尾の\rを削除するコードを追加して書けばよいのですが、改行コード\r\nで分割する方法ありましたらお教えください。
- ベストアンサー
- C・C++・C#
- 改行コードについて
改行コードがよく解らないので説明お願いします 様々なサイトの改行コードの説明で LinuxはLF MacはCR WindowsはCRLFと説明しています 私の認識では LF=\n CR=\r CRLF=\r\n だと思っていました ここで疑問なのですが 確かに私の利用した環境ではLinuxの改行コードは\n, Windwosの改行コードは\r\nでした ところがMacの標準のメモ帳(テキストエディット)で文字を入力しても改行コードは\nです 確認方法は od -cというコマンドとfileというコマンドです これはつまりCRではなくLFということですよね? では、なぜ多くのサイトではMacはCRと説明しているのでしょうか? そもそもCR=\rという認識が間違ってるのでしょうか? よろしくお願いします
- 締切済み
- その他([技術者向] コンピューター)
- 改行コードについて
HTMLフォームのテキストエリアで改行した場合の処理についてご質問します。 Windowsのローカル環境で試しています。 改行コードLFでPHPを作成しています。 ○改行コードの認識 LF(\n) Unix,Mac OS X CR(\r) Mac OS 9 CRLF(\r\n) ○テキストエリアからの入力値の処理 CRLF、CRをLFに変換しています。 $value= str_replace ("\r\n", "\n", $value); $value = str_replace ("\r", "\n", $value); このあとDBに値を格納しています。 ○出力の際の処理 DBから値を取得。 phpのprint関数で下記を出力。 <textarea >${value}</textarea> 上記処理で、ローカル、サーバともに正常に動作しています。 しかし改行コードがLF(\n)なのでCRLF(\r\n)のWindowsで表示したときには問題が起きそうな気がします(実際には正常に動作)。 なにかしっくりこなくて質問させていただきました。 よろしくお願いします。
- ベストアンサー
- PHP
お礼
ありがとうございます。 やってみましがた、だめでした・・・