とても初歩的なことを質問します。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
preg_matchで Warning: Undefin...
-
掲示板のセキュリティについて...
-
phpでcookieがうまく保存されない
-
PHPで画像の渡しが上手く行きま...
-
複数のパソコンの中の1つのパソ...
-
PHPSpreadsheetを使って関数を...
-
1 OR 1=1 は どんな論理(約束事...
-
なんでブラウザでPHPを動かすた...
-
PHPで入力フォームでデータを確...
-
PHPでユーザー情報を入力して簡...
-
重複を防ぐ記述について教えて...
-
php テーブルが作成できない
-
phpの imap_search で漢字コード
-
ここで言うトークンの意味を教...
-
phpinfo で MySQL のバージョン...
-
配列の値の更新方法について
-
空文字 "" ですが 空文字の意味...
-
if (!empty($_POST) ){ // フォ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
PHP8を使うと、大量のWarningが...
-
PHPで画像の渡しが上手く行きま...
-
PHPSpreadsheetを使って関数を...
-
PHP一覧表示した項目にリンクを...
-
フォームで戻った際に入力済み...
-
ワードプレスプラグイン MW WP ...
-
PHPについて。
-
jpgraphで表示されない
-
$_SESSIONについて教えて下さい。
-
クラス
-
phpに関わる所での、form actio...
-
PHP ページング データベース
-
php 入力画面から確認表示画面...
-
index.phpって何ですか? 具体...
-
アコーディオンPHPが上手くいか...
-
1 OR 1=1 は どんな論理(約束事...
-
reuterの記事をbeautiful.soup....
-
phpのメールフォームの完了画面...
-
PHPSpreadsheetによる書き出し...
おすすめ情報