• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpでテキスト書き込み、読み込みについて質問です)

phpでテキスト書き込み、読み込みについて質問

このQ&Aのポイント
  • phpでテキスト書き込み、読み込みについて質問します。画像名、秒数、コメントの入力フォームがあり、これらをタブ区切りでテキストに書き込んでいます。コメントの改行を表示画面で実現する方法が分かりません。また、別の方法で同じようなことを実現できるのか知りたいです。
  • phpでのテキスト書き込みや読み込みに関して質問です。入力フォームから画像名、秒数、コメントをタブ区切りでテキストに書き込んでいますが、コメントの改行を表示画面で実現する方法が分かりません。また、他の方法で同じことを実現することができるのか知りたいです。
  • phpでテキストの書き込みと読み込みに関して質問です。画像名、秒数、コメントの入力フォームをタブ区切りでテキストに書き込んでいますが、コメントの改行を表示画面で表示する方法がわかりません。また、他の方法で同じようなことを実現することができるのか教えてください。

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

fputcsvで書き込む。区切りに"\t"を指定してもいいし、標準のカンマのままでもいいです。文字列中にカンマや引用符があってもfgetcsvで読み込めば問題なく再現されます。 http://php.net/manual/ja/function.fputcsv.php http://php.net/manual/ja/function.fgetcsv.php どうしても「今の形式」でやるなら「str_replaceで改行を削除」だけではマズイので $str = str_replace(array("\r", "\n"), "", nl2br(htmlsopecialchars($str, ENT_QUOTES))); としてから書き込むしかありません(表示するときはhtmlspecialcharsを通せないので要注意)。

paranoaman
質問者

お礼

色々とありがとうございます。 "\t"でタブ区切りにし、一行保存する際に文法内の改行は「<br />」に置換、表示する際にereg_replaceで"<br />"を"\n"に置換して解決いたしました。 勉強不足だったのですが、テキストエリアの中に表示させる際に<br />が文字列として表示されてしまうことが問題だったようです。 ありがとうございました!

その他の回答 (1)

noname#244856
noname#244856
回答No.1

改行やスペースなどを何も気にせずに使える形式があります。普通はそれらを使います。詳しくは関数名でググってみてください。 【CSV形式】 メジャーなCSV形式です。fgetcsv / fputcsv で1行ずつ読み書きを行います。文字列をそれぞれの要素に持つ1次元の配列にのみ対応しています。 【シリアル形式】 PHP専用のシリアルという形式を使います。 unserialize / serialize で全ての行をまとめて復元/保存できます。更にこちらは多次元の配列でも問題ありません。文字列である必要もありません。

paranoaman
質問者

お礼

serialize、初めて知りました。 保存形式も色々とあるのですね。 勉強になります、ありがとうございました!

関連するQ&A