Domanda

Non faccio una quantità enorme di lavoro php e non ho mai usato bcompiler prima, ma io sono la migrazione di un sito php per un nuovo server e non posso ottenere questo lavoro.

Sembra che ci sia una classe compilato con 'class.viewimage.php' bcompiler - contiene il codice bz compressa 'BZh91AY & SY; iu ...'

V'è poi un file php regolare che chiama questa classe:

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

Quando si esegue questo codice solo sputa il contenuto del testo della classe compilata nel browser ( 'BZh91AY & SY; iu ...'). E 'la linea che richiedono sta causando questo. Mi sembra come php non magicamente sa che questo è stato compilato il codice.

Per quanto a mia conoscenza Ho installato bcompiler sul sistema come questo codice non è più crash (ed è stato crash quando ho fatto la migrazione) è:

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

Qualsiasi aiuto apprezzato.

È stato utile?

Soluzione

Mentre io ho avuto i miei problemi con PHP bcompiler, utilizzando include() o require() per l'accesso codice compilato (compilato utilizzando bcompiler_write_file()) su una macchina con il modulo bcompiler installato e abilitato dovrebbe funzionare.

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

  

Nota:

     

Si prega di utilizzare include o require   dichiarazioni alla bytecode di parsing, è   più portatile e modo conveniente di   di utilizzare questa funzione.

Non solo ci sono una moltitudine di insetti, ma le versioni sono compatibili tra di loro, che è quello che sto cercando di indovinare è il tuo problema.

Per esempio, il mio due macchine (incompatibili):

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

ho presentato come un bug al pacchetto PECL.

Altri suggerimenti

PHP considera tutti richiedono / includere file di testo semplice, e li trattano come tale fino a quando non ha visto né l'<? (shorttag), <?php (tag regolare), o <% (tag ASP) sequenze di caratteri nel flusso, dopo che passa in modalità PHP, finché raggiunge la fine dello script o tag corrispondente chiusura (?>, %>). Come tale, non c'è modo di avere PHP trattare un ingresso compilato come codice di programma. Anche un EVAL non sarà di aiuto, dal momento che proprio invoca lo stesso parser che non innescare l'ingresso binario, in primo luogo.

Codice bzippati sé non è eseguibile sia, a meno che non è stato avvolto da uno stub auto-estrattore.

Dato che sembrerebbe essere bzippati, perché non provare un-bzipping il file e vedere cosa si ottiene? Forse il file di classe è stato scaricato come una distribuzione .bz2 e semplicemente ottenuto rinominato. La copia non compressa può contenere gli involucri appropriate per consentire l'esecuzione.

Ho lottato da tempo al lavoro con bcompiler ma sorprendentemente ho trovato una soluzione molto semplice dove è possibile compilare voi tutto il sito con un solo clic. è possibile seguire le fasi sotto riportate: -

  1. Scaricare e installare Wampserver (qualsiasi edizione).

  2. Scarica e installa Wampserver PHP relazionati versione di PHP 5.2.5

  3. cliccare sul Wampserver -> PHP -> Versione -.> 5.2.5 da Task bar (che cambierà la versione corrente di PHP a 5.2.5)

  4. Seleziona Wampserver -> PHP -> estensione -> php_bcompiler (consentirà bcompiler sul computer).
    Sopra passi sono sufficienti se si può compilatore lo script proprio, ma per rendere più facile si può proseguire con passi successivi.

  5. bcompiler GUI .

  6. Selezionare la cartella sulla GUI bcompiler e questo compilatore tutto il tuo sito web con un solo clic.

godere PHP | Godetevi Open Source

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top