我尝试申请从逻辑概念中分离视图。我的问题是我的变量未分配到我在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
数组包含大量信息。我的文章很长。
谢谢,最好的问候
答案 0 :(得分:0)
file_get_contents
将返回与您直接加载页面相同的结果(就像通过Web浏览器一样)。在该页面上,$article
尚未设置,因此输出将为空白。
如果您需要立即显示内容,您只需include
页面即可。如果您需要稍后显示的内容,可以使用ob_start
缓冲输出,include
页面,然后ob_end_clean
来获取并存储结果。