如何动态填充标题和元标签与php和/或javascript


How to dynamically poputate title and meta tags with php and/or javascript

我试图用PHP中的搜索查询参数动态地替换我的标题标签和元描述。它们一直显示为空白,但如果我在原始PHP(第一组)标记中回显$title或$desc,则看起来很好。没有header.php文件可供参考。

<?php
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
list($chuck, $keep) = explode('?', $url);
$patterns = array(); 
$patterns[0] = 'foo';
$patterns[1] = 'bar';
$patterns[2] = '123';
$replacements = array();
$replacements[0] = 'good ';
$replacements[1] = 'bad ';
$replacements[2] = 'ugly ';
$mytitle = "my cool " . $keep . " title tag";
$mydesc = "my cool " . $keep . " meta " . $keep . " description";
$title = str_replace($patterns, $replacements, $mytitle);
$desc = str_replace($patterns, $replacements, $mydesc);
//echo $title . "</br>";
//echo $desc . "</br>";
?>      
<title><?if (strpos($url, 'foo=') !== false) { echo $title . "</br>"; } else { some other title"; }?></title>
<meta name="description" content="<?php echo $desc; ?>">

或者,像这样的javascript/php混搭会工作吗?

<script>
    document.title = <?if (strpos($url, 'foo=') !== false) { echo $title . "</br>"; } else { some other title"; }?>;
</script>

您需要稍微修改标题更改代码的else,以包含echo "

<title><?if (strpos($url, 'foo=') !== false) { echo $title . "</br>"; } else { echo "some other title"; }?></title>

除了抛出解析错误之外,这似乎对我来说工作得很好。

相关文章: