我正在努力制作一个特定的网页“回声”#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标记,以及它上面的一些注释。删除这些解决了这个问题。
答案 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;