【发布时间】:2014-03-10 14:36:22
【问题描述】:
在我的页面中,我将小写字符串转换为大写字符串并在标题标签中输出它们。首先我遇到了  不被接受的问题,所以我必须保留实体。
所以我将它们转换为 unicode,然后是大写,然后再转换回 htmlentities:
echo htmlentities(strtoupper(html_entity_decode(ob_get_clean())));
现在我遇到了与“正确的单引号”相关的问题。我在标题中将这个角色命名为’。
似乎我正在使用的两个函数中的任何一个都不能正确转换它们。有没有更好的功能可以使用,或者有什么特别适合标题标签的功能?
编辑:这是我没有影响的原始数据的 var_dump:
string(74) "Example example example » John Doe- Who’s That? "
编辑二:这是我上面的代码的结果:
如果我只使用strtoupper,就会发生这种情况:
【问题讨论】:
-
为什么你的 data 中有 HTML 实体?
-
如果那真的是 html 并且你在 html 上下文中使用它,为什么不直接使用 css 呢?
text-transform: uppercase将处理显示问题,并为您保留原始文本。 -
@MarcB:请仔细阅读问题。就像标题告诉你的那样,它是关于标题标签 (
<title></title>)。 CSS 不适用于浏览器窗口标题。 @CBroe:不幸的是,我对内容没有任何影响。它来自一个不同的网络服务,它给了我这个字符串,因为它是 -
你为什么要做这一切?
strtoupper也适用于原始数据。 html 不关心 entities 大小写,因此&NBSP;将被视为与&nbsp;相同的方式。 -
我唯一会做的事(如果标题是用户输入)是在输入上运行
htmlspecialchars以对其进行清理。
标签: php html title html-entities entities