gpt4 book ai didi

php - 在 include() 之前使用变量

转载 作者:行者123 更新时间:2023-11-27 22:51:16 25 4
gpt4 key购买 nike

我正在使用一个文件 page.php 作为多个内容文件的 HTML 容器;即,page.php 定义了页面的大部分通用结构,内容文件仅包含每个页面独有的文本。我想要做的是在每个内容文件中包含一些 PHP 代码,这些文件定义了页面的元数据,例如它的标题、要使用的横幅图形等。例如,一个内容文件可能看起来像这样(简化):

<?php $page_title="My Title"; ?>
<h1>Hello world!</h1>

文件名将作为 URL 参数传递给 page.php,如下所示:

<html>
<head>
<title><?php echo $page_title; ?></title>
</head>
<body>
<?php include($_GET['page']); ?>
</body>
</html>

这种方法的问题是变量在使用后才被定义,这当然行不通。输出缓冲似乎也无济于事。

我可以使用其他方法吗?我不想将内容文件中的文本定义为 PHP heredoc block ,因为这破坏了我的文本编辑器中的 HTML 语法突出显示。我也不想在事后使用 JavaScript 重写页面元素,因为这些页面中有许多不使用 JavaScript,如果没有必要,我宁愿不将其作为依赖项引入。

最佳答案

大多数人将包含页面的输出存储到另一个变量中。您是否尝试过将包含页面的所有内容放入输出缓冲区,然后将 ob_get_clean() 存储到 $page_html 之类的变量中,然后让您的页面看起来像这样:

<?php include($_GET['page']); ?>
<html>
<head>
<title><?php echo $page_title; ?></title>
</head>
<body>
<?php echo $page_html; ?>
</body>
</html>

编辑:所以第二页看起来像这样:

<?php
$page_title="My Title";
ob_start();
?>
<h1>Hello world!</h1>
<?php $page_html=ob_get_clean(); ?>

关于php - 在 include() 之前使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com