我的变量没有分配到我在 file_get_contents 中使用的页面中

My variable is not assigned into the page that I used in file_get_contents

我尝试申请将视图与逻辑概念分开。我的问题是我的变量没有分配到我在 file_get_contents.

中使用的页面中

我的相关代码是:

在我的 index.php:

...

// analyze the url
require_once("analyzeURL.php");

// load page contents
require_once("page_contents.php");

// print page
require_once("v_header.php");
echo $content;
require_once("v_footer.php");
...

在我的 page_contents.php:

...
elseif ( isset($is_valid_article_uri) AND $is_valid_article_uri === TRUE )
// article uid variable: $article_id
// I got this info as an output of `analyze the url` process
{
    $page_title = '';
    $page_description = '';
    $page_author = '';
    $page_robots = '';

    $query = "SELECT `status`, `author`, `title`, `summary`, `sefd`, `content`, `categories`, `tags`, `publishdate` FROM `articles` WHERE `uid` = ? LIMIT 1";
    $sth = $dbh->prepare($query);
    $sth->bindParam(1, $article_id, PDO::PARAM_INT);
    $sth->execute();
    $article = $sth->fetch(PDO::FETCH_ASSOC);
    $content = file_get_contents($content_root.'bd_unique_article.php');
}

在我的 bd_unique_article.php:

<div>
<?php echo $article["title"]; ?>
</div>

在有效的 uri 文章页面中,php 表示 $article 变量未定义。

我的问题是,如果我不想使用 eval 命令,我的选项是什么?哪个选项最安全以解决此问题? 虽然说 最安全 我的意思是 在服务器环境 中默默地使用 require_once 另请注意,$article 数组包含大量信息。我的文章真长

谢谢,最诚挚的问候

file_get_contents 将 returns 与您直接加载页面(就像通过网络浏览器加载一样)的结果相同。在该页面上,$article 尚未设置,因此输出将为空白。

如果您需要立即显示内容,您可以直接include页面。如果您需要稍后显示的内容,可以使用ob_start to buffer the output, include the page, then ob_end_clean 来获取并存储结果。