PHP: Почему моя выходная буферизация не работает? - PullRequest
0 голосов
/ 27 ноября 2018

Я использую буферизацию вывода по двум разным путям, код в основном одинаков, однако один из них никогда не возвращает значение, почему?

version.php:

<?php

    echo "v1.1.8";

работает.php:

<?php

    ob_start();
    include dirname(__FILE__)  . "/version.php";
    $version = ob_get_contents();
    ob_end_clean();

    // returns "v1.1.8"
    return $version;

notWorking.php:

<?php

    ob_start();
    include dirname(__FILE__) . "/../../../../version.php";
    $version = ob_get_contents();
    ob_end_clean();

    // returns empty
    return $version;

Структура каталогов, напечатанная командой tree :

.
|-- version.php
|-- working.php
|-- directory
|   |-- directory
|   |   |-- directory
|   |   |   |-- directory
|   |   |   |   |-- notWorking.php

Подробности среды:

  • Версия PHP 5.2.17
  • Ubuntu 12.04.5 LTS

1 Ответ

0 голосов
/ 27 ноября 2018

Учитывая код в основном то же самое.я думаю, вы не получили правильный путь ко второму файлу.

Для отладки выполните следующий код

// should return the full path to the file
die(realpath(dirname(__FILE__)  . "/../../../../version.php"));

, если приведенная выше команда возвращает false, то вам больше всего нравится получитьневерный путь к файлу.

...