外部PHP文件 - 从HTML文件中的doctype外部的回显中分配数据

时间:2013-09-04 10:58:04

标签: php html echo

我有2个文件:file1.php和file2.html。所以在file1.php我有:

...
//some variables like $title and $message
echo '<p><h1>' . $title . '</h1></p>' . 
 '<p>' . $message . '</p>';
require('file2.html');  
...

我想在我的HTML页面的echo标记中center。但是,当我在浏览器中打开file2.html时会发生什么:

<p><h1>Title</h1></p><p>Message</p>
<!-- And so the doctype comes AFTER the PHP input. This ruins the whole code -->
<!DOCTYPE html>
<html dir="ltr" lang="en-us">
<head>
<title>Example</title>
<script type="text/javascript" src="/scripts/script.js></script>"
</head>
<body style="background-color: #FBFBFB;">
<p><a href="/" title="Home">Home</a></p>
<p><a href="/contact.html" title="Contact Us">Contact Us</a>.</p>
<p><a href="/forums/" title="Forums">Forums</a></p>
<center>
</center> 
</body>
</html>

4 个答案:

答案 0 :(得分:0)

在您的中心标记内,您可以像这样回显您的价值:

<center> 
 <?php if( isset($title) ) echo "<p><h1>" . $title . "</h1></p>"; ?>
 <?php if( isset($message) ) echo "<p>" . $message . "</p>"; ?>
</center>

请注意,如果文件扩展名为.html,则无法使用php。在尝试上述解决方案之前,您需要将文件扩展名更改为.php

答案 1 :(得分:0)

首先,我会按如下方式编写PHP:

$var = "<p><h1>{$title}</h1></p>\n 
 <p>{$message}</p>";

然后命名两个文件.php!

在你的html(现在是php文件)的最顶层你放了这个:

<?php
include("path/to/file");
?>

然后在您的中心标记中写下:

<?php
echo $var;
?>

答案 2 :(得分:0)

在显示“...”之前使用回显标题的代码

你的主页应该有php扩展而不是html。 更改扩展名后,将代码插入到html标记中,如下所示:

<center>
<?php
     echo '<p><h1>' . $title . '</h1></p>' . 
    '<p>' . $message . '</p>';
    require('file2.html'); 
?></center>

答案 3 :(得分:0)

你正在做的是基本的模板。您有一个模板,可以在您的内容周围形成一个shell,并且您希望将内容嵌入到该模板中。

Drk_alien和控制台是有钱的,你的主要问题是你的echo声明在require之前,所以输出将遵循该顺序。

一般的解决方案是将模板file2.html变为容器,方法是将其转换为以下内容:

<!DOCTYPE html> 
<html dir="ltr" lang="en-us">
<head>
<title>Example</title>
<script type="text/javascript" src="/scripts/script.js></script>"
</head>
<body style="background-color: #FBFBFB;">
<p><a href="/" title="Home">Home</a></p>
<p><a href="/contact.html" title="Contact Us">Contact Us</a>.</p>
<p><a href="/forums/" title="Forums">Forums</a></p>
<center>
  <?php echo $content; ?>
</center> 
</body>
</html>

然后,在file1.html中,您可以简单地拥有:

$content = "<p><h1>{$title}</h1></p>\n 
            <p>{$message}</p>";

require 'file2.html'

$content将可用于file2.html,而file2.html可以是一般模板,您可以将其重复用于其他网页。

对于.html.php扩展,取决于您的服务器设置,PHP是否可以处理.html个文件。例如,Apache的默认值是.html不会。