网站如何将动态php内容放入facebook元标记?

时间:2016-02-18 07:14:21

标签: php facebook facebook-php-sdk

我刚刚在我的 news.php 页面添加了facebook meta标签。该文件还动态生成其下的文章(网址)页面。但是,当$ data被定义/填充在体内较低的位置时,如何设置头部中的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)

2 个答案:

答案 0 :(得分:1)

您必须在整个网站中使用Output buffering control来处理此问题。

基本上ob_start()在文件的第一个生命周期内ob_get_clean()来检索执行期间输出的所有内容。

答案 1 :(得分:1)

我想在这里将您的网站切换为mvc结构的最佳选择是详细文章w mvc patternhttp://www.sitepoint.com/the-mvc-pattern-and-php-1/

现在没有重大更改,您可以更改yoru news.php结构,以便在html部分之前检索顶部的所有内容php数据,因此在这种情况下,您将拥有$news变量您可以轻松创建mattes并在body

中显示内容