Как динамически заполнять заголовок и мета-теги с помощью php и / или javascript

#javascript #php

#javascript #php

Вопрос:

Я пытаюсь динамически заменить свой тег title и meta description, используя параметры из поискового запроса на PHP. Они продолжают отображаться пустыми, но если я повторяю $title или $ desc внутри исходного PHP (первого набора) тегов, все выглядит нормально. Нет 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>
  

Ответ №1:

Вам нужно немного изменить код изменения заголовка, чтобы включить echo «

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

Кроме выдачи ошибки синтаксического анализа, как это, кажется, работает нормально для меня.