0

我有 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

4 回答 4

0

首先,我将编写 PHP 如下:

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

然后将这两个文件命名为 .php !

在你的 html (现在是 php 文件)的最顶部,你把这个:

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

然后在你的中心标签中写下这个:

<?php
echo $var;
?>
于 2013-09-04T11:05:09.273 回答
0

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

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

<center>
<?php
     echo '<p><h1>' . $title . '</h1></p>' . 
    '<p>' . $message . '</p>';
    require('file2.html'); 
?></center>
于 2013-09-04T11:06:05.260 回答
0

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

Drk_alien 和 Console 很重要,你的主要问题是你的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取决于您的服务器设置是否.html可以通过PHP处理文件。比如说,Apache 的默认设置是.html不会。

于 2013-09-04T11:56:13.740 回答
0

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

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

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

于 2013-09-04T11:04:17.667 回答