gpt4 book ai didi

php - htmlspecialchars 将撇号转换为 '对于 facebook og :title tag

转载 作者:可可西里 更新时间:2023-10-31 23:22:02 25 4
gpt4 key购买 nike

我对我网站上的 og:title 标签有点纠结。每当文章标题有撇号并在 Facebook 上分享时,' 就会出现而不是撇号。我将我的元标记与成功显示他的撇号的 friend 的网站进行了比较,我能找到的唯一区别是:

放置在我网站的 og:title 中的撇号代码: '

放置在 friend 站点的 og:title 中的撇号代码: '

我认为我的网站在转换撇号后正在转换和号,这使得它在 Facebook 上显示为 '

我正在为 Joomla! 使用 K2,并在他们的论坛上提出了这个问题,但我已经 5 天没有收到任何回复。

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

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

我不是 php 专家,有什么方法可以更改此代码以便正确显示代码吗?如果有帮助,这里是 link到网站标题中带有撇号的文章。

感谢您的宝贵时间。

最佳答案

参见 the documentation for htmlspecialchars并查看何时转换单引号(通常用作撇号)的描述。如果设置了 ENT_QUOTES,并且您在调用 htmlspecialchars 时设置了 ENT_QUOTES,它只会对单引号进行编码。

如果您不想对单引号进行编码,那么您只需停止使用该标志并将其切换为 ENT_COMPAT(它编码双引号而不是单引号),这样你的陈述就变成了:

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

(我添加了换行符以便在此页面上易于阅读,但不要在您的实际代码中添加换行符。)

另请注意,htmlspecialchars 有一个名为 double_encode 的最终可选参数(在 PHP 5.2.3 中添加)。它默认为 true,但如果您将此参数设置为 false,则 PHP 将不会对现有实体进行编码,因此即使您对单引号进行了编码,生成的 ' 不会通过进一步调用 htmlspecialchars 进一步编码为 ',它将保留为 '

关于php - htmlspecialchars 将撇号转换为 '对于 facebook og :title tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com