- 締切済み
nl2brが効かないのですが・・・
phpで、DBから取得した「Hello!! \n World!!!」という文字列を表示したところ。 「Hello!! \n World!!!」とそのまま表示されました。 いろいろ調べた結果、 $a = 'Hello!! \n World!!!'; echo nl2br($a); とシングルクォーテーションで文字列を囲った場合と同じことになっているとわかりました。 しかし、DBから取得して$aに突っ込むまでの作業はFuelPHPというフレームワークでやっており、 じゃあダブルクォーテーションで囲っちゃえばいいじゃん、とはいかないのかなと思います。 私が考えているやれることは、 1.FuelPHPのcoreの部分を修正する 2.nl2br($a)をnl2br(str_replace('\n',"\n",$a))のように一手間加える なのですが、気持ちがよくはありません。 もしかすると、 ・FuelPHPのconfigの問題 ・PHPやapache、DB(MySql)はたまたOSの何らかの設定の問題 なのかな、とは思いますが検討もつかない状況です。 誰か解決策をお持ちの方はいますでしょうか? 因みに、Webサーバーの環境は以下の通りです。 Windows7 HomePremium apache 2.2.21 php 5.3.8 fuelPHP 1.1 MySql 5.5(文字セットはutf-8)
- みんなの回答 (2)
- 専門家の回答
補足
私の中の迷いを記述し忘れていました。 >>nl2br($a)をnl2br(str_replace('\n',"\n",$a))のように一手間加える >が必要最小限の処理で、むしろ気持ちいい処理だと思いますが? 確かにこれでいいといえばいいのですが、 google先生にたずねても、参考にした「FuelPHP入門」という本にもそのような一手間は書かれていませんでした。 ですので、何かのバージョンの違いやコンフィグの内容の相違があるのではないか、と考えました。 一手間加えるのは簡単なのですが、そもそもその必要がないのでは?ということです。 ちなみに、「文字列として変換しないように」とはどういうことでしょうか?