php – htmlspecialchars将撇号转换为' for facebook og:title tag

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – htmlspecialchars将撇号转换为' for facebook og:title tag脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网站上与og:tITle标签轻微挣扎.每当文章标题有撇号并在FaceBook分享时,'显示而不是撇号.我已经将我的元标记与成功显示其撇号的朋友网站进行了比较,我发现的唯一区别是:

放置在og:我网站标题中的撇号代码
    &放大器;放大器;#039;

放置在og中的撇号代码:朋友网站的标题
    &安培;#039;

我认为我的网站在转换了撇号之后正在转换&符号,这使得它显示为'在脸书上.

我正在使用K2 for JooMLa!,并在他们的论坛上提出了这个问题,但我现在还没有在5天内收到回复.

这是我在com_k2> views> item> view.html.PHP文件中找到的代码

$document->setMetaData('og:title',htmlsPEcialchars($document->getTitle(),ENT_QUOTES,'UTF-8'));

我不精通PHP,有什么@L_406_18@可以改变这个,所以代码会出现吗?
如果它有帮助,这里有一个link一个文章,在网站的标题中有一个撇号.

感谢您的时间.

解决方法

请参阅 the documentation for htmlspecialchars并查看何时转换单引号(通常用作撇号)的说明.如果设置了ENT_QUOTES,它将只编码单引号,并且在调用htmlspecialchars时设置了ENT_QUOTES.

如果您不希望对单引号进行编码,那么您只需要停止使用该标志并将其切换为ENT_COMPAT(编码双引号而不是单引号),以便您的语句变为:

$document->setMetaData('og:title',ENT_COMPAT,'UTF-8'));

(我添加了换行符,因此在此页面上很容易阅读,但不要在实际代码添加换行符.)

另请注意,htmlspecialchars有一个名为double_encode的最终可选参数(在PHP 5.2.3中添加).它认为true,但是如果你将这个参数设置为false,那么PHP将不会对现有实体进行编码,所以即使你对单引号进行了编码,结果也会出现'将不会进一步编码为& amp; amp; amp; amp; amp; amp; amp;通过进一步调用htmlspecialchars,它将保留为'.

脚本宝典总结

以上是脚本宝典为你收集整理的php – htmlspecialchars将撇号转换为' for facebook og:title tag全部内容,希望文章能够帮你解决php – htmlspecialchars将撇号转换为' for facebook og:title tag所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。