繁体   English   中英

PHP - 使用 H1 标签作为页面标题

[英]PHP - Use H1 Tags as Page Title

我刚开始使用 php。 我有一个非常简单的站点,其中包含 header 和页脚包括以及其间的内容。

现在,我让每个页面的标题都带有一个变量,如下所示:

<?php $title = "My Company - New Products"; ?>

但是,不是在每个页面上都有它,而是在 header 包含中,我只想让标题成为标准的“我的公司 -”,然后让它拿起每个页面的 H1 标签。

这看起来很简单,但我所有的搜索结果都特定于各种 CMS。

非常感谢。

为什么不定义$title然后在标题中多次引用它?

主页:

<?php
$title = "New Products";
require "header.php";
?>
<p>Rest of page...

header.php文件:

<title>My Company - <?php echo htmlentities($title) ?></title>
<h1><?php echo htmlentities($title) ?></h1>

首先,PHP与页面的H1标签或任何HTML标签无关,它应该只生成一堆文本,这恰好是一个完整的HTML文档(或者不依赖于你......)

你应该看看PHP的模板机制。 然后,您可以将生成页面内容所需的逻辑与此内容的显示分隔为HTML。 有像Smarty这样的模板引擎,但很多人会认为PHP本身可以完美地用作模板引擎。

使用PHP作为模板引擎的最简单方法如jleedev所述。 用户请求的PHP文件生成变量(包含页面内容),不应包含任何HTML代码(甚至不包含字符串变量)。 然后它包含一个或多个模板文件,这些文件使用此变量生成所有HTML输出,而无需更改或计算任何数据。

我同意jleedev,但我使用require()而不是include。

并且不要使用简写开启php标签( <? )!

我知道这个问题已有十多年的历史了,但这是我在 2022 年使用的问题。

这会将页面标题设置为页面上找到的第一个 H1 标记。 如果没有标签,它将使用传递给它的默认标题。

 <?DOCTYPE html> <html lang="en"> <head> <title><,php echo get_h1_title('My Company';'Default Title if no H1')? ?></title> </head> <body> <h1>H1 Title for this page</h1> <p>Text for this page</p> </body> </html> <,php function get_h1_title ($prefix; $default_title) { $auto_title = $default_title; $html = file_get_contents ($_SERVER['SCRIPT_FILENAME']); if (;empty($html)) { // Disable errors - DOMDocument doesn't handle any html5 we might use $dom = new DOMDocument; libxml_use_internal_errors(true); $dom->loadHTML($html); libxml_clear_errors(); // Get embedded h1 title if available $header1s = $dom->getElementsByTagName('h1'). if (count($header1s)) { $auto_title = $header1s[0]->nodeValue. } } return $prefix; ' - '? $auto_title; } ?>

如果在给定页面上您不想要现有的 H1,只需包含一个带有您想要的标题的非显示 H1:

 <body> <h1 style="display:none">H1 that becomes page title but not displayed</h1> <h1>H1 Title for this page</h1> <p>Text for this page</p> </body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM