我的变量未分配到我在file_get_contents

时间:2016-03-25 15:04:14

标签: php variables variable-assignment 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数组包含大量信息。我的文章很长。

谢谢,最好的问候

1 个答案:

答案 0 :(得分:0)

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

如果您需要立即显示内容,您只需include页面即可。如果您需要稍后显示的内容,可以使用ob_start缓冲输出,include页面,然后ob_end_clean来获取并存储结果。