Frage

Ich habe nicht eine riesige Menge an PHP-Arbeit tun, und ich habe noch nie gebraucht bcompiler vor, aber ich bin eine PHP-Website auf einen neuen Server migrieren und ich kann diese Arbeit nicht bekommen.

Es scheint eine Klasse kompiliert mit bcompiler 'class.viewimage.php' werden - es enthält bz komprimierte Code 'BZh91AY & SY; iu ...'

Es gibt dann eine regelmäßige PHP-Datei, die diese Klasse ruft:

require('class.viewimage.php');
$my_image = NEW ViewImage ($MEDIALIB->Filestore);

Wenn dieser Code ausgeführt wird, es spuckt nur die Textinhalte der kompilierten Klasse in den Browser ( ‚BZh91AY & SY; iu ...‘). Es ist die Linie erforderlich, die dies verursacht. Scheint mir wie PHP nicht weiß, magisch, dass dieser Code kompiliert wird.

Nach bestem Wissen und Gewissen ich BCompiler auf dem System als diesen Code installiert habe, ist nicht mehr abstürzt (und es wurde abstürzt, wenn ich zum ersten Mal der Migration tut):

if (!extension_loaded('bcompiler')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'bcompiler.' . PHP_SHLIB_SUFFIX);
}

Jede Hilfe sehr geschätzt.

War es hilfreich?

Lösung

Während ich habe meine eigenen Probleme mit PHP bcompiler hatte, mit include() oder require() den Zugriff kompilierten Code (mit bcompiler_write_file() kompiliert) auf einer Maschine mit dem bcompiler Modul installiert und aktiviert sollte funktionieren.

http://us2.php.net/manual/en/ function.bcompiler-read.php :

  

Hinweis:

     

Bitte benutzen Sie umfassen oder benötigen   Aussagen zu Parse-Bytecode, es ist   mehr tragbar und bequem als   Mit dieser Funktion.

Nicht nur gibt es eine Vielzahl von Fehlern, aber Versionen sind nicht miteinander kompatibel, das ist das, was ich vermute, ist Ihr Problem.

Zum Beispiel meiner zwei (inkompatible) Maschinen:

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

Ich legte es als einen Fehler an die PECL-Paket.

Andere Tipps

PHP betrachtet alle benötigen / Include-Dateien Klartext zu sein, und werden auch als solche behandelt, bis sie entweder die <? (SHORTTAG) spots, <?php (regular-Tag) oder <% (ASP-Tag) Zeichenfolge in dem Strom nach die es schaltet in PHP-Modus, bis er das Ende des Skripts trifft oder den entsprechenden End-Tag (?>, %>). Als solche gibt es keine Möglichkeit einen kompilierte Eingang als Programmcode zu haben PHP zu behandeln. Selbst ein EVAL wird nicht helfen, denn das ist nur den gleichen Parser aufruft, die nicht den binären Eingang in erster Linie auslösen haben.

bzipped Code selbst ist nicht ausführbar entweder, wenn sie nicht von einem Auto-Extraktor Stummel eingewickelt worden ist.

Da es erscheinen würde bzipped sein, warum nicht versuchen, un-bzipping die Datei und sehen, was Sie bekommen? Vielleicht war die Klassendatei als .bz2 Distribution heruntergeladen und wurde einfach umbenannt. Die unkomprimierte Kopie kann den entsprechenden Wrapper enthält Ausführung zu ermöglichen.

Ich bin seit langer Zeit an der Arbeit mit bcompiler kämpfen, aber überraschend fand ich eine sehr einfache Lösung, wenn Sie Ihnen gesamte Website mit einem Klick zusammenstellen können. Sie können die unten folgt vorgehen: -

  1. Herunterladen und Installieren von Wampserver (jede Ausgabe).

  2. Download und Wampserver PHP Addons Version PHP 5.2.5

  3. installieren
  4. Klicken Sie auf Wampserver -> PHP -> Version. -> 5.2.5 von Taskleiste (es wird Ihre aktuelle Version von PHP 5.2.5 ändern)

  5. Wählen Sie Wampserver -> PHP -> Erweiterung -> php_bcompiler (es wird bcompiler auf Ihrem Computer aktiviert).
    Oben genannten Schritte sind genug, wenn Sie das Skript Ihren eigenen Compiler kann aber leicht machen Sie mit dem nächsten Schritten fortfahren können.

  6. Herunterladen bcompiler GUI .

  7. Wählen Sie den Ordner auf dem BCompiler GUI und dies wird Compiler Ihre gesamte Website mit einem Klick.

genießen PHP | Genießen Sie Open Source

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top