• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ソースの中で改行するには(CakePHPヘルパー))

ソースの中で改行するには(CakePHPヘルパー)

このQ&Aのポイント
  • ソースの中で改行するには(CakePHPヘルパー)についてご質問です。
  • CakePHPのnestedListヘルパーを使用すると、ソースが一行で表示される問題について解決策を教えてください。
  • ソースを改行とタブで整形する方法について教えてください。

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

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

nestedListの内部を書き換えてできないかと考えてましたが <li>の前のみタブ、というのがざっと見たところうまくできなさそうと思ったので 単純にnestedListからの戻り値をリプレースしてはどうでしょう? <?php $str="<ul><li>ほげ1</li><li>ほげ2</li><li>ほげ3</li><li>ほげ4</li></ul>"; // ul改行 $pattern='/(<ul>)/'; $str=preg_replace($pattern,"$1\n",$str); // liタブ&改行 $pattern='/(<li>.*?<\/li>)/'; $str=preg_replace($pattern,"\t$1\n",$str); echo $str; ?>

misoshio
質問者

お礼

ご回答ありがとうございます。 試してみたところうまく表示できました。 わざわざnestedListの内部までチェックしていただいて恐縮です。 1つお聞きしたいのですが、上記のようなソースの整形方法はよく使われているのでしょうか。 やはりよほどのことがない限り、ムリに整形せず、そのまま出力したほうが無難なのでしょうか。

その他の回答 (1)

  • duron
  • ベストアンサー率77% (73/94)
回答No.2

私自身は他のモジュールが返してくるものに関しては 加工することを前提としたものでない限り手を加えません。 だいたいが私よりwebの知識に富んだ方たちが作ったものなので もしかしたら何かしら意図があるかもしれないということで。 今回のでしたら改行なしで返ってくるということは 「ソースの見栄えは気にすることじゃないよ」と解釈します。 すでに字下げをされているところに出力するということになると その分さらにタブを追加して・・・などと労力のわりには実益がなさそうですし。

misoshio
質問者

お礼

なるほど。やはりこういった場合には手を加えないほうがよさそうですね。トラブルの発生率が高まるし、労力も増えるしでいいことなさそうです。 ただ、preg_replaceを使った整形方法をご教示くださったのは勉強になりました。 お付き合いくださり、誠にありがとうございました。

関連するQ&A