Что бы я хотел достичь
- my php- script работает на: http://execute.tld
- во время работы я хотел бы получить контент (также скрипты) с другого сайта: http://noexecution.tld без выполнения (компиляции), но отложить выполнение
- Теперь я хотел бы выполнить содержимое http://noexecution.tld на http://execute.tld li >
Это немного похоже на захват глобальных script фрагментов и компиляцию после их объединения на другом сервере.
Файлы
main.php | http://execute.tld/main.php
<?php
$var = 'main.php';
file_put_contents("local_sub.php", file_get_contents("http://noexecution.tld/sub.php") );
include "local_sub.php";
echo $var;
?>
sub.php | http://noexecution.tld/sub.php
sub.php | line 1 notcompiled<br>
<?php $var = 'sub.php | line 2 compiled later<br>'; ?>
sub.php | line 3 notcompiled<br>
Результат после запуска main.php
sub.php | line 1 notcompiled
sub.php | line 3 notcompiled
main.php
Требуемый результат
sub.php | line 1 notcompiled
sub.php | line 3 notcompiled
line 2 compiled later
Мое собственное обходное решение
Мое собственное решение - просто переключить расширение с sub.php на sub.whatever и переименовать его "на лету".
Файлы
main.php | http://execute.tld/main.php
Исходный код тот же, но изменен
file_get_contents (http://noexecution.tld/sub. php") на
file_get_contents ("http://noexecution.tld/sub. DontCompileAsPhp ").
<?php
$var = 'main.php';
file_put_contents("local_sub.php", file_get_contents("http://noexecution.tld/sub.DontCompileAsPhp"));
include "local_sub.php";
echo $var;
?>
sub.DontCompileAsPhp | http://noexecution.tld/sub.DontCompileAsPhp
Исходный код тот же, но без расширения php он также не будет скомпилирован как php.
sub.php | line 1 notcompiled<br>
<?php $var = 'sub.php | line 2 compiled later<br>'; ?>
sub.php | line 3 notcompiled<br>
Результат после запуска main.php(соответствует точно моим потребностям)
sub.php | line 1 notcompiled
sub.php | line 3 notcompiled
line 2 compiled later
Почему меня не устраивает мой обход?
Я хочу иметь чистый способ отложить компиляцию, не играя с расширениями...
Вещи, которые я также пробовал
-
__halt_compiler(); [...]
-
ob_start(); [...]
любая помощь очень приветствуется - thanx заранее | Кстати: это мой первый вопрос