php – htmlspecialchars将撇号转换为' for facebook og:
我在网站上与og:title标签轻微挣扎.每当文章标题有撇号并在Facebook上分享时,'显示而不是撇号.我已经将我的元标记与成功显示其撇号的朋友网站进行了比较,我发现的唯一区别是: 放置在og:我网站标题中的撇号代码: 放置在og中的撇号代码:朋友网站的标题: 我认为我的网站在转换了撇号之后正在转换&符号,这使得它显示为'在脸书上. 我正在使用K2 for Joomla!,并在他们的论坛上提出了这个问题,但我现在还没有在5天内收到回复. 这是我在com_k2> views> item> view.html.PHP文件中找到的代码:
我不精通PHP,有什么方法可以改变这个,所以代码会出现吗? 感谢您的时间. 解决方法: 请参阅the documentation for htmlspecialchars并查看何时转换单引号(通常用作撇号)的说明.如果设置了ENT_QUOTES,它将只编码单引号,并且在调用htmlspecialchars时设置了ENT_QUOTES. 如果您不希望对单引号进行编码,那么您只需要停止使用该标志并将其切换为ENT_COMPAT(编码双引号而不是单引号),以便您的语句变为:
(我添加了换行符,因此在此页面上很容易阅读,但不要在实际代码中添加换行符.) 另请注意,htmlspecialchars有一个名为double_encode的最终可选参数(在PHP 5.2.3中添加).它默认为true,但是如果你将这个参数设置为false,那么PHP将不会对现有实体进行编码,所以即使你对单引号进行了编码,结果也会出现'将不会进一步编码为& amp; amp; amp; amp; amp; amp; amp;通过进一步调用htmlspecialchars,它将保留为'. (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |