1

这是我的动态标题和元描述更新代码;

$titlecek=mysql_query("SELECT bahisisim,bahisiaciklama,URL FROM bahis WHERE id='$bahisid'");
$titlecekx=mysql_fetch_array($titlecek);
echo "<title>" . mb_strtolower($titlecekx[0],'UTF-8') . "</title>";
echo '<META NAME="Description" CONTENT="' . mb_strtolower($titlecekx[1],'UTF-8') . '">';

但是当我尝试在 Facebook 上分享我的页面时,它看起来像;

http://666kb.com/i/c6st3ke4u4hqaem42.gif

顺便说一句,它的 HTML 代码在输出时就像这些;

<title>bu bahise gelen evet says tek say olacak</title><META NAME="Description" CONTENT="bu bahise 2 gün içerisinde gelen evet oyu sayısı tek sayı olacak. (ilkokullu editi: 2'nin katları çift sayıdır, 0 çift sayıdır)">

我该如何解决这个问题?

4

3 回答 3

3

每次更改元标记时,都必须通过Facebook 调试器运行 URL ,以确保 Facebook 丢弃它的元标记缓存版本。

取自Facebook Open Graph Protocol 文档,在“编辑元标签”部分下 -

要使更改反映在 Facebook 上,您必须强制抓取您的页面。当页面的管理员单击“赞”按钮或将 URL 输入 Facebook URL Linter调试器时,页面会被抓取。

于 2012-08-29T13:26:44.673 回答
1

确保您告知站点使用的字符编码。否则,即使您以 UTF-8 格式正确输出值,消费者(在本例中为 Facebook)也不会知道在读取数据时使用什么编码。

一种方法是使用这个:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

在 HTML5 中,您还可以说

<meta charset="UTF-8" />
于 2012-08-29T13:32:02.897 回答
0

最终解决方案;

$turkceler= array("ç", "ğ" , "ı", "ö", "ş", "ü");
$degistir= array("&#231", "&#287", "&#305", "&#246", "&#351", "&#252");
echo "<title>" . str_replace($turkceler,$degistir,mb_strtolower($titlecekx[0])) . "</title>";
echo '<META NAME="Description" property="og:description" CONTENT="' . substr(strip_tags(str_replace($turkceler,$degistir,mb_strtolower($titlecekx[1]))),0,200) . "..." . '">';
echo '<meta property="og:image" content="' . $titlecekx[2] . '"/>';
于 2012-08-29T14:57:07.603 回答