【发布时间】:2018-04-18 15:46:05
【问题描述】:
我正在使用动态标题、描述和规范。
我无法解释和弄清楚这里发生了什么。
我正在将与下面完全相同的示例复制到我现有的实时网站中,但由于某种原因,在我的实时网站上它没有像在测试示例中那样替换字符串?
有什么东西会影响脚本的结果吗?
测试
<html lang="da">
<head>
<!-- Title -->
<title>%TITLE%</title>
<!-- META -->
<meta name="description" content="%DESCRIPTION%">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="canonical" href="%CANONICAL%"/>
<!-- GOOGLE+ -->
<meta itemprop="name" content="TITLE">
<meta itemprop="description" content="This is the page description">
<meta itemprop="image" content="http://www.example.com/image.jpg">
</head>
<body id="body">
<p>Hello</p>
<?php
$buffer = ob_get_contents();
ob_end_clean();
$canonical = "https://www.shittysite.com";
$placeholders = array("%CANONICAL%");
$substitues = array($canonical);
$buffer = str_replace($placeholders, $substitues, $buffer);
echo $buffer;
?>
</body>
</html>
【问题讨论】:
-
你不会在任何地方
ob_start()。 -
自动输出缓冲可能在其他服务器的 PHP 配置中被禁用。不过,您应该仍然可以显式启动它。
-
我尝试添加 ob_start 也没有结果。嗯,我如何在服务器上允许这个?
-
你把
ob_start放在哪里了?它必须是第一件事,在任何 HTML 输出之前。 -
一开始是的,但我不能让它工作
标签: php dynamic str-replace ob-get-contents