我正在尝试使用php在
中构建包含onclick="Javascript"
的html代码
我一直收到错误消息,说我在控制台中错过了}
,但事实并非如此。
尽管网站显示错误
然后我跟着这篇文章
How should I echo a PHP string variable that contains special characters?
并使用方法htmlentities
起初它似乎工作正常,但我必须改变一些东西,因为现在它输出html字符串作为文本而不显示元素
这个问题存在于不同的平台/浏览器中,所以我不相信它是与缓存相关的问题。
php脚本中还有其他元素正确输出html,它只是出现了这一行。
提前致谢
echo htmlentities('<h2 class="page_title">' . $db_field['Title'] . '</h2><a onClick="showAndroidToast(' . $_SESSION['user_id'] . ',' . $db_field['ID'] . ')"><img src="/mobile/images/plus.png" style="width:25px;height:25px;float:right;margin-top:15px"></a>');
答案 0 :(得分:1)
您不应对实际想要解释为HTML的字符串使用htmlentities()
,因为它会将<
和>
转换为实体,以便按字面显示。只需在您不想解释的变量上调用它:
echo '<h2 class="page_title">' . htmlentities($db_field['Title']) . '</h2><a onClick="showAndroidToast(' . $_SESSION['user_id'] . ',' . $db_field['ID'] . ')"><img src="/mobile/images/plus.png" style="width:25px;height:25px;float:right;margin-top:15px"></a>');
答案 1 :(得分:0)
为什么要这么暴力?
以下是如何使用PHP输出模板:
{{1}}
答案 2 :(得分:0)
每当你打电话给htmlentities()
时,其中的任何内容都会被翻译成浏览器解释为要显示的文字符号的字符。这就是我们如何告诉浏览器显示HTML和代码而不实际解释它。它还允许我们显示我们不希望浏览器意外解析的符号。如果您希望浏览器解释包含HTML的字符串,请不要使用htmlentities()
。
你不想要:
print htmlentities("<h1>I have a < and > sign I don't want interpreted</h1>");
你确实想要:
print '<h1>' . htmlentities("I have a < and > sign I don't want interpreted") . '</h1>';