• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:改行コードがそのまま表示されてしまう。)

ネットショップで改行コードがそのまま表示される問題の解決方法とは?

このQ&Aのポイント
  • ネットショップで改行コードがそのまま表示されてしまう問題があります。管理サイトからデータを登録すると、データベース上に<br>という形で登録されますが、ネットショップのページでは改行されずに表示されます。直接データベースを編集することで改行が正しく表示されますが、他の人が管理サイトを使用することを考えると、データベースを直接編集したくありません。
  • この問題を解決するためには文字列の置き換え関数を使用する方法があります。<br>を改行コードに置き換えることで、ネットショップページで正しく改行が表示されます。ただし、正しい置き換えを行うためには適切な関数を使用する必要があります。
  • 具体的な方法としては、PHPのstr_replace関数を使用することができます。str_replace関数を使うと<br>を改行コードに置き換えることができます。また、正規表現を使用する方法やデータベースに保存する前に改行コードを変換する方法もあります。適切な方法を選び、問題を解決することができます。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

HTML出力する部分で $line =~ s/&lt;br&gt;/<br>/g; print OUT $line; とか・・・

phpjava
質問者

お礼

回答ありがとうございます。 $line =~ s/&lt;br&gt;/<br>/g; を追加してみると、html側で上手く表示することができました。 ありがとうございます。(^O^)

phpjava
質問者

補足

ちなみに、試したページではhtml出力する際にテンプレートファイル(.html)を使って$lineとprintを使って表示させていたので単に追加するだけで上手くいきました。 一方、別のページではcgiのソースファイル内のサブメソッド内で直にhtml文書を書いて$lineとprintを使わないで作っているのですが、こういった場合は上記対応はどのように変えて使えばできるでしょうか?

その他の回答 (2)

回答No.2

おっと、cgiってことなのでphpではなくperlなのかな。 phpだと勘違いして回答してしましました。 まあ、要は改行はそのまま登録して表示に<pre>を使うってことです。

phpjava
質問者

お礼

cgiです。 <pre>ですね、一度試してみたいと思います。

phpjava
質問者

補足

試してみましたが、データベース内で&lt;br&gt;部分が<br>になっただけで改行されていませんでした。 おまけにtableの横幅が一気にでかくなってみずらくしまいました。

回答No.1

商品のコメントとかなのかな。 商品ページのテンプレートの部分が、 <p><?php print $comment; ?></p> とかになっているとすると、 <pre><?php print $comment; ?></pre> と変更して、改行は改行のまま投稿するのはどうでしょう。 データ登録時にhtmlタグを登録可能にするとか、<br>のみ登録可能にするとかは、 あまり良いやり方ではないと思います。

phpjava
質問者

お礼

回答ありがとうございます。 商品のコメントや、店舗情報の掲載する箇所についてです。 データ登録時のhtmlタグを入力したいというよりは単に管理画面で改行したいところで改行してそれがショップサイトに正しく改行されて表示できていたら良いのです。

関連するQ&A

専門家に質問してみよう