PHP 用于将 META 描述和 TITLE 传递给站点的缓冲区 header
PHP Buffer to pass the META Description and TITLE to the site header
我正在尝试改进我的 SEO,一种方法是添加包含页面内容描述的描述标签,这可以显示在 Google 搜索结果中。
我遇到的问题是需要在站点 header 中,但是我在站点 body 中查询我的数据库,我不想要通用的元描述,我希望它根据当前页面动态更新。我的网站是一个相机比较网站,所以例如我需要将品牌名称、型号名称和一些规格传递给元...
我在标签方面遇到了同样的问题,因为我希望我的页面标题包含产品名称,我通过使用缓冲区解决了这个问题,允许我将型号名称传递给标题。
header.php:
<title>%TITLE%</title>
compare.php
ob_start();
include_once 'includes/header.php';
$buffer_title=ob_get_contents();
buffer_title=str_replace("%TITLE%", "Specced | " . $brand['brand'] . " " . $model['model'] ,$buffer_title);
echo $buffer_title;
ob_end_clean();
使用这段代码,我能够根据页面 ID 查询品牌名称和型号名称,并将详细信息传递到标题...我想我可以用 META 描述标签做同样的事情。
我知道 META 标签不能出现在网站中 body,所以我的问题是,我希望能够将元详细信息和标题详细信息都传递到页面 header使用上面显示的 object 方法。
header.php:
<title>%TITLE%</title>
<meta name="Description" content="%META%">
compare.php:
ob_start();
include_once 'includes/header.php';
$buffer_title=ob_get_contents();
buffer_title=str_replace("%TITLE%", "Specced | " . $brand['brand'] . " " . $model['model'] ,$buffer_title);
echo $buffer_title;
$buffer_meta=ob_get_contents();
buffer_meta=str_replace("%META%", "some dynamic meta description" ,$buffer_meta);
echo $buffer_meta;
ob_end_clean();
我在使用此代码时遇到的问题是它两次包含 header 文件,您可以在我的网站上看到这个:
http://cameras.specced.co.uk/compare.php?compare_1=129
我很想知道如何使用 ob_start 方法将元数据和标题详细信息传递给 header。谢谢
这是使用 header 和页脚的 PHP 脚本的常见设计问题。
<header>
<body>
<footer>
从技术上讲,您首先需要收集数据,然后才能输出。但是对于您现有的设计,您首先开始输出(缓冲或不缓冲),然后进行处理,然后您意识到您太早开始输出了:)
您可以将输出与处理分开,即将 body 转换为 body 模板并预先进行处理。
为此,您需要声明用于标题和描述的模板变量(在您在每个特定 body 模板中使用的变量旁边,但是在 header 变量时,这些变量可能会有所不同在所有 header 个模板中都是固定的。
[processing]
|
|
variables
|
\|/
<header>
<body>
<footer>
如果你按照这个顺序,你不需要自己写find/search/replace代码,你可以直接在你的模板中输出变量。只是执行顺序的问题
在程序中,输出操作通常排在最后(输入 -> 处理
-> 输出;首次公开募股)。
我正在尝试改进我的 SEO,一种方法是添加包含页面内容描述的描述标签,这可以显示在 Google 搜索结果中。
我遇到的问题是需要在站点 header 中,但是我在站点 body 中查询我的数据库,我不想要通用的元描述,我希望它根据当前页面动态更新。我的网站是一个相机比较网站,所以例如我需要将品牌名称、型号名称和一些规格传递给元...
我在标签方面遇到了同样的问题,因为我希望我的页面标题包含产品名称,我通过使用缓冲区解决了这个问题,允许我将型号名称传递给标题。
header.php:
<title>%TITLE%</title>
compare.php
ob_start();
include_once 'includes/header.php';
$buffer_title=ob_get_contents();
buffer_title=str_replace("%TITLE%", "Specced | " . $brand['brand'] . " " . $model['model'] ,$buffer_title);
echo $buffer_title;
ob_end_clean();
使用这段代码,我能够根据页面 ID 查询品牌名称和型号名称,并将详细信息传递到标题...我想我可以用 META 描述标签做同样的事情。
我知道 META 标签不能出现在网站中 body,所以我的问题是,我希望能够将元详细信息和标题详细信息都传递到页面 header使用上面显示的 object 方法。
header.php:
<title>%TITLE%</title>
<meta name="Description" content="%META%">
compare.php:
ob_start();
include_once 'includes/header.php';
$buffer_title=ob_get_contents();
buffer_title=str_replace("%TITLE%", "Specced | " . $brand['brand'] . " " . $model['model'] ,$buffer_title);
echo $buffer_title;
$buffer_meta=ob_get_contents();
buffer_meta=str_replace("%META%", "some dynamic meta description" ,$buffer_meta);
echo $buffer_meta;
ob_end_clean();
我在使用此代码时遇到的问题是它两次包含 header 文件,您可以在我的网站上看到这个:
http://cameras.specced.co.uk/compare.php?compare_1=129
我很想知道如何使用 ob_start 方法将元数据和标题详细信息传递给 header。谢谢
这是使用 header 和页脚的 PHP 脚本的常见设计问题。
<header>
<body>
<footer>
从技术上讲,您首先需要收集数据,然后才能输出。但是对于您现有的设计,您首先开始输出(缓冲或不缓冲),然后进行处理,然后您意识到您太早开始输出了:)
您可以将输出与处理分开,即将 body 转换为 body 模板并预先进行处理。
为此,您需要声明用于标题和描述的模板变量(在您在每个特定 body 模板中使用的变量旁边,但是在 header 变量时,这些变量可能会有所不同在所有 header 个模板中都是固定的。
[processing]
|
|
variables
|
\|/
<header>
<body>
<footer>
如果你按照这个顺序,你不需要自己写find/search/replace代码,你可以直接在你的模板中输出变量。只是执行顺序的问题
在程序中,输出操作通常排在最后(输入 -> 处理 -> 输出;首次公开募股)。