从get_file_contents中检索的文件内的Echo php变量

时间:2013-10-31 20:15:00

标签: php

我试图让变量在用于唯一div id的模板文件中回显,但它不断输出整个字符串并忽略php标记。我的代码和结果如下:

comment.php:

<?php
ini_set("display_errors", TRUE);

$idOfContent = 1;
$numberOfComments = 4;

while($idOfContent<=$numberOfComments){
    $content = file_get_contents('comment_tmpl.php');
    echo $content;
    $idOfContent +=1;
}


?>

comment_tmpl.php:

<div class="Container">
    <div class="Content" id="<? echo $idOfContent ?>">
        <div class="PhotoContainer"> Image here </div>
        <div class="CommentAndReplyContainer">
            <div class="CommentBox" id="TopCommentBox_<? echo $idOfContent ?>">
                <form method="post" action="comment.php">
                    <textarea name="comment" id="<? echo $idOfContent ?>_comment" onclick="this.value='';" > Write a comment </textarea>
                    <input type="hidden" name="buttonId" value="<? echo $idOfContent ?>" />
                    <input type="submit" id="submit" value="Post" />
                </form>
            </div>
        </div>
    </div>
</div>

结果:

<div class="Content" id="<?php echo $idOfContent ?>"></div>

如何让它识别PHP标签并正确输出变量?

1 个答案:

答案 0 :(得分:5)

file_get_contents()函数,如名称所示,将获取comment_tpl.php内的内容,echo将在HTML标记中输出,但它将无法正确解析为PHP代码。我不确定你为什么这样做,但你可能正在寻找include()

while($idOfContent<=$numberOfComments){
    include('comment_tmpl.php');
    $idOfContent +=1;
}

或者,您可以使用eval(),但这是一个非常糟糕的主意,我不推荐它。