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オープン グラフ プロトコルのドキュメントの「メタ タグの編集」セクションから抜粋 -

変更を Facebook に反映するには、ページを強制的にスクレイピングする必要があります。ページの管理者が [いいね] ボタンをクリックするか、URL が Facebook URL Linter Debugger に入力されると、ページがスクレイピングされます。

于 2012-08-29T13:26:44.673 に答える
1

サイトが使用している文字エンコーディングを必ず伝えてください。これがないと、値を UTF-8 形式で正しく出力したとしても、消費者 (この場合は Facebook) は、データを読み取るときにどのエンコーディングを使用すればよいかわかりません。

これを行う1つの方法は、これを使用することです:

<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 に答える