2015-03-13 4 views
2

Я ищу способ разбора как SSI (обычно в .shtml-файлах), так и PHP в одном из моих файлов PHP.Проанализируйте как SSI, так и PHP в определенном .php-файле

В .htaccess, я использую это, чтобы добавить синтаксический анализ SSI в свой PHP-файл, но когда я это делаю, PHP перестает работать и ведет себя как HTML-комментарии только с синтаксическим анализом SSI.

<Files phpfile.php> 
    AddHandler server-parsed .php 
</Files> 

Как добавить оба метода анализа в этот файл?

EDIT: Есть other questions здесь относительно противоположного (PHP в .shtml файлов), но, во-первых, это решение не работает для меня, а во-вторых, я бы предпочтительно, как это наоборот.

Я запускаю Apache 2.4 с CloudLinux, Litespeed и cPanel.

+0

[Возможно, эта статья имеет подход.] (Http://www.zytrax.com/tech/php/php_ssi.htm) Мне нравится идея использования 'virtual'. – bishop

+0

@cerebriform спасибо, но мне нужно разобрать SSI direct в файле, а не только файлы shtml в php-файл. Это должно быть возможно в файле .htaccess, я думаю, но я не очень хорош в этом. – mnsth

+0

Этот вопрос касается выполнения того же самого (я думаю), но для .shtml файлов: http://stackoverflow.com/questions/15713204/parse-shtml-as-ssi-but-also-include-php-using-htaccess – kainaw

ответ

1

Это зависит от того, вы хотите, чтобы выполнить это.

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

Если вы хотите, чтобы результаты процесса PHP обрабатывались для директив SSI, есть некоторые способы сделать это. Связанный вопрос - один из них, есть также ответ this, который может быть чем-то, что сработает для вас.

Бывший работает, потому что Apache может принимать выходные данные PHP, анализировать его для директив SSI, удовлетворять этим директивам и затем выводить их клиенту. Однако сделать обратное невозможно. Также обратите внимание, что никакие файлы, включенные в результате SSI, не будут сначала проанализированы для PHP. Только начальный запрос.

Возможно, более важным было бы определить, какую проблему вы пытаетесь решить здесь. Что поставило вас на место, что вам нужно сделать? И можно ли решить эту проблему со строго PHP или SSI.

PHP имеет ряд встроенных функций для выполнения аналогичных задач, include и require. Он также имеет virtual command, который будет выполнять подпроцесс Apache. Этот подзапрос будет обрабатываться по мере того, как будет настроен Apache, и если файл, указанный в virtual, является SHTML-файлом, он будет анализироваться для директив SSI.

Важно отметить, что команда virtual очистит все данные от клиента до включения файла, а результат включения будет отправлен непосредственно клиенту (PHP не будет иметь доступ к вывода команды, а файл SHTML не будет иметь доступа к каким-либо данным PHP [или наоборот]).

+0

Хорошо, но мне не удается получить вывод PHP в файле .shtml либо с использованием предыдущего вопроса. Вы знаете только решение для определенного файла? Я могу изменить имя файла на .shtml – mnsth

+0

Просьба уточнить, что вы пытаетесь сделать более четко: вы хотите разобрать PHP-файл (AS PHP) в данные SHTML (SSI), а затем проанализировать директивы SSI в Вывод PHP? Или вы хотите, чтобы файл анализировался для директив SSI, а затем результирующие данные анализировались как PHP? – Mike

+0

Я считаю, что последний был прав. Для одного из моих файлов я хочу проанализировать как SSI, так и PHP непосредственно в одном файле. Имя файла может быть любым. Например. это должно работать и выводить «2015 2015»: '' Было ли это более понятным? Это возможно? – mnsth