网站如何将动态 php 内容放入 facebook 元标记中?
How do sites put dynamic php content into facebook meta tags?
我刚刚将 Facebook 元标记添加到我的 news.php 页面。该文件还在其下动态生成文章(url)页面。但是,当 $data 在 body 中被定义/填充时,我如何在头部设置 fb 元标记的标题(即 <meta property="og:title" content="<?php echo $data[0]['title']; ?>" />
)?
这么多网站是怎么做到的?
将不胜感激对此的任何指导。
下面是我页面的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title</title>
<meta property="fb:app_id" content="6666666666666"/>
<meta property="og:title" content="<?php echo $data[0]['title']; ?>" />
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '66666666666666',
xfbml : true,
version : 'v2.5'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<header>
<div class="contentwrap">
<article>
<h1>- News- </h1>
<?php
if (isset($_REQUEST['id'])) {// user gets here by clicking on link with id
$id_raw = trim(htmlentities($_REQUEST["id"]));
$data = news_data_id($conn, $id_raw);
?>
<h2><?php echo $data[0]['title']; ?></h2>
<img src="<?php echo $data[0]['filepath'];?>" style="float: left; max-height: 5em; margin: 0.5em 0.5em 0.5em 0; -webkit-shape-outside: circle(50%); shape-outside: circle(50%);">
<p><?php echo $data[0]['body']; ?></p>
<div
class="fb-like"
data-share="true"
data-width="450"
data-show-faces="false">
</div>
<?php }
else {
(continues)
您必须在整个站点中使用 Output buffering control 来处理此问题。
基本上 ob_start()
在文件的第一个生命周期和 ob_get_clean()
检索执行期间输出的所有内容。
我想将您的网站切换到 mvc
结构的最佳选择是详细的文章mvc pattern
:http://www.sitepoint.com/the-mvc-pattern-and-php-1/
目前无需进行重大更改,您可以更改 yoru news.php
结构,以便它将检索 html 部分之前顶部的所有内容 php 数据,因此在这种情况下,您将在 html 的所有位置都有 $news
变量,可以轻松创建 mattes
并在 body
中显示内容
我刚刚将 Facebook 元标记添加到我的 news.php 页面。该文件还在其下动态生成文章(url)页面。但是,当 $data 在 body 中被定义/填充时,我如何在头部设置 fb 元标记的标题(即 <meta property="og:title" content="<?php echo $data[0]['title']; ?>" />
)?
这么多网站是怎么做到的?
将不胜感激对此的任何指导。
下面是我页面的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title</title>
<meta property="fb:app_id" content="6666666666666"/>
<meta property="og:title" content="<?php echo $data[0]['title']; ?>" />
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '66666666666666',
xfbml : true,
version : 'v2.5'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<header>
<div class="contentwrap">
<article>
<h1>- News- </h1>
<?php
if (isset($_REQUEST['id'])) {// user gets here by clicking on link with id
$id_raw = trim(htmlentities($_REQUEST["id"]));
$data = news_data_id($conn, $id_raw);
?>
<h2><?php echo $data[0]['title']; ?></h2>
<img src="<?php echo $data[0]['filepath'];?>" style="float: left; max-height: 5em; margin: 0.5em 0.5em 0.5em 0; -webkit-shape-outside: circle(50%); shape-outside: circle(50%);">
<p><?php echo $data[0]['body']; ?></p>
<div
class="fb-like"
data-share="true"
data-width="450"
data-show-faces="false">
</div>
<?php }
else {
(continues)
您必须在整个站点中使用 Output buffering control 来处理此问题。
基本上 ob_start()
在文件的第一个生命周期和 ob_get_clean()
检索执行期间输出的所有内容。
我想将您的网站切换到 mvc
结构的最佳选择是详细的文章mvc pattern
:http://www.sitepoint.com/the-mvc-pattern-and-php-1/
目前无需进行重大更改,您可以更改 yoru news.php
结构,以便它将检索 html 部分之前顶部的所有内容 php 数据,因此在这种情况下,您将在 html 的所有位置都有 $news
变量,可以轻松创建 mattes
并在 body