- 1. 概要
- 2. 記述
1. 概要
「.blade.php」の中で、変数を使って表示するには
@php
$hogehoge = なにやら変数の設定
@endphp
{{ $hogehoge }}
と書けばいいと思っていたら。
複数行を含む、変数で、内部にタグを書いていたら、タグが展開されず、そのままタグがべたのもじとして表示されてしまったのでびっくり。
本ページは、下記のサイトを参考にさせていただきました。
「【Laravel】htmlを含む変数を表示させる方法【エスケープ】」
2. 記述
ずばり
{{ $hogehoge }}
でなく
{!! $hogehoge !!}
と記述するんですと。
実際、やってみて、うまくいきましたわ。
ただし、なにやら
この方法の場合、PHP の htmlspecialchars 関数は適用されないため、ユーザーが入力した情報を出力するのには XSS の危険性があるため向いていません。
てなことが書いてあるのですが、現段階(2021年8月2日)でなんのことやらわかりませんので、そういうことに出くわしたときに、驚いて対応したいと思います。
ちなみに、タグを展開させないのも使い勝手があって、本サイトのように、ソースコードをそのまま書いているとき。
「C」言語系で、「#include」のかっこがエスケープされると、「#include」の先になにも表示されなくなるので。
@php
$text = <<<EOT
#include <semaphore.h>
sem_t *sem_open(const char *name, int oflag, ...);
int sem_close(sem_t *sem);
int sem_unlink(const char *name);
EOT;
@endphp
{{ $text }}
てな書き方をします。
(実は、上のテキストは、ソース上、複雑怪奇)
|