str_replace с буфером ob_get_contents не работает на веб-сайте, но работает в процессе тестирования?

Привет, я играю с заголовками, описаниями и каноническими заголовками.

У меня возникли проблемы с объяснением и выяснением того, что здесь происходит.

Я копирую точно такой же пример, как показано ниже, в мой существующий веб-сайт, но по какой-то причине на моем веб-сайте он не заменяет строки, как в тестовом образце?

Есть что-нибудь, что может помешать исходу сценария?

тестирование

<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>

1 ответ

Так как никто не ответил, я сделаю это сам.

Некоторые хостинг-провайдеры / серверы, по-видимому, не имеют буферизации вывода по умолчанию.

Мне пришлось разрешить буферизацию вывода в моем файле.htaccess, что мне удалось сделать с помощью приведенного ниже кода.

php_value output_buffering On
php_value output_handler mb_output_handler

Код для серверов Apache, я надеюсь, что это поможет некоторым из вас там:)

Другие вопросы по тегам