とても初歩的なことを質問します。
CakePHPのnestedListヘルパーで出力すると、ソースは一行で表示されてしまいます。
たとえば以下の場合、
echo
$html->nestedList(array(
$html->link($hoge1,'#1'),
$html->link($hoge2,'#2'),
$html->link($hoge3,'#3'),
$html->link($hoge4,'#4'),
));
ソース上では以下のように一行で出力されます。
<ul><li>ほげ1</li><li>ほげ2</li><li>ほげ3</li><li>ほげ4</li></ul>
(もちろん、ブラウザ上ではなんの問題もありませんが...)
これを
<ul>
<li>ほげ1</li>
<li>ほげ2</li>
<li>ほげ3</li>
<li>ほげ4</li>
</ul>
このように改行とタブを入れてソースを整形したいのですが、どう書けばいいのでしょうか。
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;
?>
ご回答ありがとうございます。
試してみたところうまく表示できました。
わざわざnestedListの内部までチェックしていただいて恐縮です。
1つお聞きしたいのですが、上記のようなソースの整形方法はよく使われているのでしょうか。
やはりよほどのことがない限り、ムリに整形せず、そのまま出力したほうが無難なのでしょうか。
No.2
- 回答日時:
私自身は他のモジュールが返してくるものに関しては
加工することを前提としたものでない限り手を加えません。
だいたいが私よりwebの知識に富んだ方たちが作ったものなので
もしかしたら何かしら意図があるかもしれないということで。
今回のでしたら改行なしで返ってくるということは
「ソースの見栄えは気にすることじゃないよ」と解釈します。
すでに字下げをされているところに出力するということになると
その分さらにタブを追加して・・・などと労力のわりには実益がなさそうですし。
なるほど。やはりこういった場合には手を加えないほうがよさそうですね。トラブルの発生率が高まるし、労力も増えるしでいいことなさそうです。
ただ、preg_replaceを使った整形方法をご教示くださったのは勉強になりました。
お付き合いくださり、誠にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらはただの直列処理ですか?
-
phpでcookieがうまく保存されない
-
PHPで画像の渡しが上手く行きま...
-
PHPでこのコード自体に意味は無...
-
Q&Aサイトを作成していてURLの...
-
クエリObjectをforeachで回す時...
-
phpでPEAR::DBを使っているので...
-
reuterの記事をbeautiful.soup....
-
phpでクラスのメソッドで同名の...
-
PHP8を使うと、大量のWarningが...
-
SFTPなどは使わないホームペー...
-
awsにApacheとPHPを入れて、何...
-
phpのクラスメソッドの定義が長...
-
PHPで訪問回数を表示するカウン...
-
PHPを使って、別サイトの一部を...
-
jpgraphで表示されない
-
PHP MySQLに画像を直接保存
-
PHPとHTML+Xamppの掲示板で画像...
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報