PHP код скомпилирован с BCOMPILER, не работает
Вопрос
Я не делаю огромное количество работы PHP, и я никогда не использовал BCOMPILER раньше, но я мигрирую на сайт PHP на новый сервер, и я не могу получить эту работу.
Кажется, есть класс скомпилирован с bcepiler 'Class.viewimage.php' - он содержит BZ сжатый код 'BZH91AY & SY; IU ...'
Затем есть обычный файл PHP, который вызывает этот класс:
require('class.viewimage.php');
$my_image = NEW ViewImage ($MEDIALIB->Filestore);
Когда этот код запущен, он просто выпивает текстовое содержимое скомпилированного класса в браузер («BZH91AY & SY; IU ...»). Это требуется линия, которая вызывает это. Мне кажется, как PHP магически не знает, что это скомпилированный код.
Насколько мне известно, я установил BCMPILER в системе, поскольку этот код больше не врезается (и он сбился, когда я впервые сделал миграцию):
if (!extension_loaded('bcompiler')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'bcompiler.' . PHP_SHLIB_SUFFIX);
}
Любая помощь оценила.
Решение
Пока у меня были свои неприятности с PHP BCOMPILER, используя include()
или require()
Для доступа к скомпилированному коду (скомпилировано с использованием bcompiler_write_file()
) на машине с модулем BCOMPILER установлен и включен, должен работать.
http://us2.php.net/manual/en/function.bcompiler-read.php.:
Примечание:
Пожалуйста, используйте включение или требуют заявлений на аналитические байты, это более портативный и удобный способ, чем использование этой функции.
Существуют не только множество ошибок, но версии несовместимы друг с другом, что я думаю, это ваша проблема.
Например, мои две (несовместимые) машины:
CentOS 5.5, PHP 5.2.10, Apache 2.2.3, x86_64
----
bcompiler version 0.9.3-devs
current bytecode version 0.21
can parse bytecode version 0.7, 0.9, 0.11, 0.12, 0.14,
0.18, 0.21
Mac OS X 10.6, PHP 5.3.3, Apache 2.2.15, i386
----
bcompiler version 0.9.3-devs
current bytecode version 0.22
can parse bytecode version 0.20, 0.22
Я отправил его как ошибку в пакет PECL.
Другие советы
PHP считает, что все требуют / включают в себя файлы, чтобы быть обычным текстом, и будет относиться к ним как таковые, пока он не точна <?
(Shorttag), <?php
(обычный тег) или <%
(ASP-тег) последовательности символов в потоке, после чего он переключает в режим PHP, пока он не попадает в конце скрипта или соответствующего закрывающегося тега (?>
, %>
). Таким образом, нет никакого способа иметь PHP обработки скомпилированного ввода в качестве программного кода. Даже Eval не поможет, поскольку это просто вызывает тот же анализатор, который не вызвал двоичный ввод в первую очередь.
Сам код Bzaked тоже не исполняется, если только он не был обернут автоматически вытяжной заглушкой.
Поскольку это, кажется, будет бzaip, почему бы не попробовать Un-Bzipping файл и посмотреть, что вы получаете? Возможно, файл класса был загружен как распределение .bz2 и просто переименован. Несжатая копия может содержать соответствующие обертки для выполнения.
Я боролся с долгого времени, чтобы работать с BCOMPILER, но удивительно, что я нашел очень простое решение, где вы можете скомпилировать весь сайт одним кликом. Вы можете следить за шире шагов: -
Загрузите и установите WAPPSERVER (любое издание).
Загрузить и установить версию Addons Wampserver PHP PHP 5.2.5
Нажмите на WAPPSERVER -> PHP -> Версия -> 5.2.5 из панели задач (изменит вашу текущую версию PHP до 5.2.5).
Выберите WAMPSERVER -> PHP -> Удлинитель -> PHP_BCompiler (он включит BCMPILER на вашем компьютере).
Достаточно вышеуказанных шагов, если вы можете компилятьруйте сценарий своего собственного, но чтобы сделать его легко, вы можете продолжить продолжение с помощью следующих шагов.Скачать BCOMPILER GUI..
Выберите папку на BCOMPILER GUI, и это будет компиляторуйте весь ваш сайт одним щелчком мыши.
Наслаждайтесь PHP |. Наслаждайтесь открытым источником