Php echo整页HTML覆盖

时间:2015-12-29 18:27:56

标签: php html echo eval

我正在努力制作一个特定的网页“回声”#39;一个全新的HTML页面,同时覆盖&#39;在“请求的页面”中设置的任何内容&#39;。我们可以说它里面有某种形式的内容,我希望它能够回应起来。页面完全替换它,<head>标签和所有内容 类似的概念(通过我的理解)被各种模板引擎使用。然而,他们使用结构化HTML并用数据填充它,同时我希望在整个文件中动态创建HTML结构,这将被聚合成一个字符串,然后创建&#39;到要显示给用户的HTML中。

<?php
    $htmlcontent = "\n";
    $htmlcontent .= "<html>\n";
    $htmlcontent .= "<head>\n";
    $htmlcontent .= "<style> body {\n";
    $htmlcontent .= "            background-color: red;\n";
    $htmlcontent .= "        }\n";
    $htmlcontent .= "</style>\n";
    $htmlcontent .= "</head>\n";
    $htmlcontent .= "<body>\n";
    $htmlcontent .= "<div style=\"background-color:yellow; width:200px; height:200px; position:absolute\"> Some text </div>\n";
    $htmlcontent .= "<script>\n";
    $htmlcontent .= "alert(\"script has run!\");\n";
    $htmlcontent .= "</script>\n";
    $htmlcontent .= "</body>\n";
    $htmlcontent .= "</html>\n";

    echo ($htmlcontent); //EDIT: removed eval() from here
?>

编辑: 删除了eval()以避免让新人感到困惑,对那些阅读帖子的评论发表评论,以免因代码中缺少评估而感到困惑

这是我针对我的请求定位的.php页面的内容。我们的想法是,为了能够在浏览器中获得一个完整的新页面,所发生的是接下来的错误(现在不相关,因为删除了Eval):

  

解析错误:语法错误,意外&#39;&lt;&#39;在   D:\ wamp \ www \ learningPHP \ index.php(30):第2行的eval()&#39;代码

如果我只是使用:

echo $htmlcontent;

然后我得到了打印我的HTML结构的页面,但是它全部打印在空白HTML页面的主体中,而不是按照我的需要进行结构化。

答案:

问题在于NetBeans的其中一个插件。从服务器手动编辑.php文件后,它似乎带有文档的标准HTML标记,以及它上面的一些注释。删除这些解决了这个问题。

1 个答案:

答案 0 :(得分:1)

我读了你的问题和你的所有评论。

我认为您需要ob_start();,这很简单:

ob_start(); //write this line in start of your project, 
//In header file. 

//Here is normal html/css/js/PHP. write your html or echo any things...
// Normal code is here....

//e.g: 
<html><body>Hello world <?php date("y"); ?> </body></html>

$html = ob_get_clean(); //write this line at the end of file.. in footer file
//now your html save in $html variable,
now use replace functions to replace any thing from your html.. :)

//at the end, 
echo $html;

ob_start();使用此功能时,在回显结果

之前,浏览器上不会显示任何内容
$html = ob_get_clean();
echo $html;