ラボ > Laravel、Lumen:views関連

laravel ビューでの変数出力と改行コードの対応({!! nl2br(e(xxx)) !!})

ビューで変数を出力させる

作成日:2023-01-05, 更新日:2024-02-28

基本

「{{ xxx }}」を使う。HTMLとして出力したいときに「{!! xxx !!}」を使う。

記述 内容 備考
{{ xxx }} XSS攻撃の対策済みの出力 「echo htmlspecialchars(xxx)」と同じ
{!! xxx !!} XSS攻撃の対策をしていない出力 変数にHTMLタグが含まれるとき

改行コードがあるときの対応

▼PHPの「nl2br()」を使う

{!! nl2br(xxx) !!}

scriptタグがあるときの問題

「{!! nl2br(xxx) !!}」だとHTMLタグをそのまま出力するのでscriptタグが含まれているとそのまま実行されてしまう

▼「htmlspecialchars()」してから「nl2br()」を使う

{!! nl2br(e(xxx)) !!}

※「e()」が「htmlspecialchars()」と同じ感じ