よろしくお願いいたします。
カレンダーを利用した宿の空室状況を作っています。
「各日付」の下に空室状況を表す○、×等の「マーク」その下に祭日やイベントなどの「コ
メント」を表示し、これらは編集できるようにしたいです。
上記の「マーク」や「コメント」の内容は下のような月毎に用意したテキストファイルから
fopen関数で呼び出し、fgets関数で一行ずつ配列にセットしています。
例)201505.txt
(1行目)○お部屋割引あり!
(2行目)×
(3行目)○憲法記念日
(4行目)△みどりの日
…
…
表示の際は、該当日の配列から、mb_substr関数で1文字目を取り出し空室状況のマークとし
て表示、改行してmb_substr関数で取り出した2文字目以降を「みどりの日」等のコメントと
して表示しています。
この場合の改行は、マークは1文字のみと決まっているので1文字を表示したらphpのソースに<br>
タグをecho であらかじめ書いておくことで問題なく表示されます。
つまずいているのはここからです。
コメントに改行を入れたいのですが、入力画面で改行すると、テキストファイルも改行され
てしまい、改行後に表示したかった内容が次の日の行に書かれてしまい、失敗します。
最初に試した方法は、入力画面で改行をして登録するfput関数のパラメータ上でstr_replace
関数を使って「\r\n」を「<br>」に置き換える方法です。
最初の登録時は<br>を使っていないので問題ないのですが、タグ入力を禁止する為にエラー
チェックで「<>」を排除しており、2回目の編集後登録しようとしてもテキストに書かれてい
る「<br>」がチェックにひっかかってしまいます。
エラーチェックで「<>」をOKにはできないので悩んでいます。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
いちばん簡単なのは、保存の際fputcsv() をつかい、読みだしの際にfgetcsv()を使えば
改行を含む一区切りでデータを呼び出すことができます。
ちなみにこの手の処理をテキストでやる限りデータの競合はさけられません。
ちゃんとやるならデータベースでデータ管理することをお勧めします
早速のご回答ありがとうございます。
PHPを始めたばかりで、まずはテキストでできる範囲と思っていましたが(データベースは難しそうで・・・)なるほど、テキストはこのような処理には向いていないのですね。
苦肉の策で、一度<br>ありで保存したテキストを読み込む際にまた\r\nに置き換えて・・・という処理を入れてみたら、動くことは動きましたが、どうにもスマートではないのを自覚しております。
fputcsv() 、fgetcsv()にトライしてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでテキストファイルに保存した時の改行問題 1 2022/11/19 15:07
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/06/23 15:02
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのレポートの表示...
-
フォームから入力された改行コ...
-
C#のRichTextBoxで表示行数を取...
-
NotifyIconで二列の文字列を表...
-
phpの<br>\\nと\\nとエスケープ...
-
フォームのtextareaにnl2brを使...
-
【jQuery】いい文字数カウンタ...
-
HTMLの値の渡し方について質問...
-
SELECTボックスの内容を動的に...
-
アンケート個別表示について教...
-
遷移先のURLにパラメータを表示...
-
奇数・偶数の区別をプログラミング
-
スペースの取り方について
-
ASP.NETでTimerコントロールを...
-
C言語について。
-
aspxでIFみたいなことがしたい
-
javascriptで結果表示テキスト...
-
ASPからEXCELに出力する
-
write downとfill outの違いを...
-
ASP.netで、CheckBoxListのSele...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのレポートの表示...
-
phpの<br>\\nと\\nとエスケープ...
-
該当セルに行替えを含むデータ...
-
フォームのtextareaにnl2brを使...
-
C#のRichTextBoxで表示行数を取...
-
改行したいのですが
-
<br>が文字列で出力されてしま...
-
入力テキスト内で改行コードが...
-
<TEXTAREA> 1行目の改行・・・。
-
改行コード入り文字列を含むXML...
-
機種依存文字
-
PHPのfopenのバイナリモードに...
-
ファイル名がテキストボックス...
-
PHP 改行を含めた文字列をテキ...
-
フォームから入力された改行コ...
-
ブログパーツのjsファイルの書き方
-
LINEの打ち込みに改行が表示さ...
-
テキストエリアで読み込んだら<...
-
PHPでテキストファイルに保存し...
-
Smartyでの改行
おすすめ情報