PHP - Laravel 未转义输出,输出 HTML 标签到页面展示({!! $变量 !!})

311 阅读1分钟
  • 如果变量信息里边如果有 HTML 标记信息,在输出的时候 HTML 标记被转化为符号实体了,而没有被浏览器解析掉,如果希望看到被浏览器解析后的内容,就需要设置两个感叹号:{!! $变量 !!}

  • 例如:

    Route::get('req', function () {
        // Json 参数
        $data = ['id'=>1, 'name'=>'dzm', 'home'=>'<a href="https://www.baidu.com">百度</a>'];
        // 传递
        return view('index')->with(['data'=>$data]);
    });
    

    上面传到视图模板页面的数据中有一个 home 字段,它是 a 标签,到时候需要展示出来的就是一个正常的 a 标签,而不是输出字符串。

    这时候就需要用到 {!! $变量 !!} 这种语法

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      <div>DZM 视图文件测试</div>
      <div>ID: {{ $data['id'] }}</div>
      <div>Name: {{ $data['name'] }}</div>
      <div>Home: {{ $data['home'] }}</div>
      <div>Home: {!! $data['home'] !!}</div>
    </body>
    </html>