php распечатать содержимое файла с php-контентом

После безуспешной проверки как fread, так и fopen с помощью поисковой команды «php fread php code» и php fopen php code, я теперь сам задаю вопрос. (Более 300 страниц с вопросами были немного крутыми, чтобы копать вокруг внутри.)

У меня есть страница, на которой я получаю содержимое из внешних файлов. Я получил index.php со ссылками, которые отправляют запросы через URL-адрес (например,? Links=home), который читается из другого файла, который просматривает массив и находит нужный файл. Все это работает! Но вот сложная часть: один из файлов включает несколько строк php-кодов, которые не будут выполнять свою работу, а просто висят в исходном коде. Да, вы можете увидеть команды в исходном коде, но это не то, что я прошу. Ни единого эха.

Вот некоторый код, который может объяснить ситуацию еще лучше.

Код, который получает url-команду:

<?php
function load_pages() {
    if ($_GET['link'] != NULL) {
        $link = $_GET['link'];
        $links = array("hem" => "hem.php", "about" => "about.php", "blogg" => "blogg.php", "kontakta" => "kontakta.php");
        foreach ($links as $key => $value) {
            if ($key == $link) {
                $file = "links/" . $value;
                $fh = fopen($file, "r") or exit("Unable to open the file.");
                $fileContent = fread($fh, filesize($file));
                fclose($fh);
                echo $fileContent;
            }
        }
    } else {
        $file = "links/hem.php";
        $fh = fopen($file, "r") or exit("Unable to open the file.");
        $fileContent = fread($fh, filesize($file));
        fclose($fh);
        echo $fileContent;
    }
}
?>

Файл, который получает команду для страницы, которую я хочу загрузить:

<?php
include ("../include/functions.php");
connect();
?>

<h1>Blogg</h1>
<?php
if ($_GET['id'] == NULL) {
    blogg_content();
} else {
    blogg_link();
}
?>

<div id="blogg_menu">
    <?php blogg_menu(); ?>
</div>

Что получается: Blogg Это просто не работает, так что я могу изменить, чтобы он давал мне содержание блога и тому подобное? (Страница написана на шведском языке, просто чтобы исключить любые опечатки в слове «Blogg».)


person Richard Atterfalk    schedule 02.08.2011    source источник
comment
Разве вы не ищете просто оператор include, возможно, с ob_start перед ним? (О, и всегда require_once или include_once функциональных файлов).   -  person Wrikken    schedule 03.08.2011
comment
Он не будет читать php, поэтому включать в этом случае было бы бесполезно. Раньше у меня был include-тег, он также попал на индексную страницу.   -  person Richard Atterfalk    schedule 03.08.2011
comment
Эм, если include это не то, что вам нужно, я совершенно не понимаю, что вы хотите отправить клиенту. Необработанный PHP-код? Потому что это то, что у вас есть сейчас, и, похоже, это не то, чего вы хотите.   -  person Wrikken    schedule 03.08.2011
comment
Я получил включение в индексный файл, а также в файл блога. Но совсем не вышло. Если у вас есть идея, не могли бы вы опубликовать пример кода для меня?   -  person Richard Atterfalk    schedule 03.08.2011
comment
Короткий фрагмент из источника представления: ‹div id=content› ‹?php include (../include/functions.php); соединять(); ?› | Это не из моего редактора, а из исходного кода в веб-браузере.   -  person Richard Atterfalk    schedule 03.08.2011
comment
Да, потому что вы отправляете необработанный код PHP (он должен быть обработан на сервере, если вы этого не хотите). Сделайте две вещи: (1) Каждый include вашего functions.php файла должен стать include_once во всех файлах из массива $links. (2) Затем include эти файлы вместо чтения. Если это не сработает, пожалуйста, опишите нам, что на самом деле происходит, если вы говорите «совсем не сработало».   -  person Wrikken    schedule 03.08.2011


Ответы (1)


Если эти файлы содержат код PHP, который вы хотите выполнить, вам нужно include или require их, а не повторять необработанные данные.

См. документацию по PHP, чтобы узнать, как включать файлы кода.

РЕДАКТИРОВАТЬ По вашему описанию трудно сказать, но если это вообще возможно, вам придется сделать что-то вроде:

...
if ($key == $link) {
    $file = "links/" . $value;
    include_once $file;
}
...
person aefxx    schedule 02.08.2011
comment
Include требует php-тег, и это не позволяет мне использовать php-скрипты с моим кодом. Вы увидите только включение в источник представления, но не будете делать никаких других изменений на сайте. - person Richard Atterfalk; 03.08.2011
comment
Конечно нет, вы читаете необработанные текстовые данные и отправляете их клиенту. Вам нужно либо найти способ включить эти файлы, либо выполнить неприятный синтаксический анализ и оценку, чтобы имитировать механизм включения PHP (вы действительно не хотите начинать с такого рода вещами, поверьте мне). - person aefxx; 03.08.2011
comment
Не могли бы вы привести пример того, как я могу это сделать? У меня есть включаемый файл на индексной странице, и я могу без проблем читать все документы. Но этот скрипт не может работать с php-кодом для меня. - person Richard Atterfalk; 03.08.2011