В общем, есть хитрый PHP-скрипт (test.php). Его хитрость в том, что он по определённому GET-запросу отдаёт содержимое HTML-страницы через ReadFile(). Но страница тоже не простая, у неё внутри написано примерно так:
<html>
<head>
...
</head>
<body>
<?php
print ('string');
?>
</body>
</html>
Т.е. это HTML со встроенным PHP. Всё работает кроме одного. Проблема заключается в том, что вот в таком хитром случае PHP внутри HTML-страницы не обрабатывается (ну оно и понятно, ибо здесь PHP-код тупо пишется в поток как текст). Мне нужно чтобы PHP код был выполнен, когда страница с PHP отдаётся другим PHP-скриптом. Как возможно этого добиться? И возможно ли вообще или это я чего-го запрещённого хочу?
Здравствуйте, x64, Вы писали:
x64>Мне нужно чтобы PHP код был выполнен, когда страница с PHP отдаётся другим PHP-скриптом. Как возможно этого добиться?
eval()
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>> SQL Express 2005
x64 однажды (18 октября 2008 23:46) писал в rsdn.web:
> Я не супер-мега-веб-программер, к сожалению... Поясните, пожалуйста!
<?PHP
function phpWrapper($content) {
ob_start();
$content = str_replace('<'.'?php','<'.'?',$content);
eval('?'.'>'.trim($content).'<'.'?');
$content = ob_get_contents();
ob_end_clean();
return $content;
}
$content = file_get_contents('feedback.php');
$content = phpWrapper($content);
// $content will now contain your evaluated code :)
?>
Отсюда
--
Бортовой журналPosted via RSDN NNTP Server 2.1 beta
Здравствуйте, x64, Вы писали:
x64>Я не супер-мега-веб-программер, к сожалению... Поясните, пожалуйста!
Про eval() можно почитать
тут, но, пожалуй, я не очень внимательно прочитал твою задачу.
В справке написано, что readfile() "открывает файл так же, как функция fopen()", т.е. вроде как должна понимать префикс http "
http://site/path/file.html". М.б. понадобится проверить настройки, как для fopen(). Твой сайт д.б. настроен, чтобы правильно отдавал html с кодом на php внутри.
Ну, а если таки не понимает, то есть
fopen()/fread()/fpassthru()/fclose(). fopen() умеет использовать "
http://", если задан allow_url_fopen и пр. См. справку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>> SQL Express 2005
Здравствуйте, x64, Вы писали:
x64>Т.е. это HTML со встроенным PHP. Всё работает кроме одного. Проблема заключается в том, что вот в таком хитром случае PHP внутри HTML-страницы не обрабатывается (ну оно и понятно, ибо здесь PHP-код тупо пишется в поток как текст). Мне нужно чтобы PHP код был выполнен, когда страница с PHP отдаётся другим PHP-скриптом. Как возможно этого добиться? И возможно ли вообще или это я чего-го запрещённого хочу?
Использовать include() или require()?
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
include/require
Или ещё есть eval().
Posted via RSDN NNTP Server 2.1 beta