Вопрос

Я не делаю огромное количество работы 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, но удивительно, что я нашел очень простое решение, где вы можете скомпилировать весь сайт одним кликом. Вы можете следить за шире шагов: -

  1. Загрузите и установите WAPPSERVER (любое издание).

  2. Загрузить и установить версию Addons Wampserver PHP PHP 5.2.5

  3. Нажмите на WAPPSERVER -> PHP -> Версия -> 5.2.5 из панели задач (изменит вашу текущую версию PHP до 5.2.5).

  4. Выберите WAMPSERVER -> PHP -> Удлинитель -> PHP_BCompiler (он включит BCMPILER на вашем компьютере).

    Достаточно вышеуказанных шагов, если вы можете компилятьруйте сценарий своего собственного, но чтобы сделать его легко, вы можете продолжить продолжение с помощью следующих шагов.

  5. Скачать BCOMPILER GUI..

  6. Выберите папку на BCOMPILER GUI, и это будет компиляторуйте весь ваш сайт одним щелчком мыши.

Наслаждайтесь PHP |. Наслаждайтесь открытым источником

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top