我通过API调用收到一大块HTML,并尝试将该HTML放入我的模板中进行渲染。但是,它不是渲染,而是打印出来,好像它是一个字符串。
来自API的HTML字符串示例:
Context ctx = ....//e.g., from Service use this.
mGoogleApiClient = new GoogleApiClient.Builder(ctx)
.addScope(new Scope(Scopes.PROFILE))
.addScope(new Scope(Scopes.EMAIL))
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
然后在控制器中我将字符串转换为HTML实体
\u0026lt;p\u0026gt;\u0026lt;strong\u0026gt;Hello World\u0026lt;/strong\u0026gt;\u0026lt;/p\u0026gt;
我遇到的问题是,在我看来,HTML是打印的(标签和全部),而不是呈现为HTML:
在视图代码中:
$content = htmlspecialchars_decode($response['content']);
最终结果:
<?= $content ?>
如何在我的视图中显示此HTML块?
答案 0 :(得分:1)
您的数据看起来像双重编码。尝试
$content = htmlspecialchars_decode(htmlspecialchars_decode($response['content']));
答案 1 :(得分:0)
从字符串的外观来看,您不需要htmlspecialchars_decode()
,因为您没有直接使用HTML特殊字符。
我怀疑您是以JSON格式获取数据。 JSON编码的值有时可以将特殊字符转换为Unicode常量(例如,PHP json_encode()
函数在与JSON_HEX_*
选项一起使用时执行此操作。)
试试这个:
$content = json_decode('"' . $response['content'] . '"');