Question

Je ne fais pas une énorme quantité de travail php et je ne l'ai jamais utilisé bcompiler avant mais je migrer un site php vers un nouveau serveur et je ne peux pas obtenir ce travail.

Il semble y avoir une classe compilée avec 'class.viewimage.php' bcompiler - il contient bz code compressé 'BZh91AY & SY; iu ...

Il y a alors un fichier php régulier qui appelle cette classe:

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

Lorsque ce code est exécuté, il recrache tout le contenu du texte de la classe compilée dans le navigateur ( 'BZh91AY & SY; iu ...). Il est la ligne require qui est à l'origine de cette. Il me semble que php ne sait pas comme par magie que ce code est compilé.

Au meilleur de ma connaissance, je l'ai installé Bcompiler sur le système que ce code n'est plus écraser (et il plantait quand je l'ai fait la migration):

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

Toute aide appréciée.

Était-ce utile?

La solution

Alors que j'ai eu mes propres problèmes avec PHP bcompiler, en utilisant include() ou require() d'accès du code compilé (compilé en utilisant bcompiler_write_file()) sur une machine avec le module bcompiler installé et activé devrait fonctionner.

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

  

Note:

     

S'il vous plaît utiliser include ou require   déclarations à bytecode parse, il est   plus portable et plus pratique que   en utilisant cette fonction.

Non seulement il y a une multitude de bugs, mais les versions sont incompatibles entre eux, ce qui est ce que je devine est votre problème.

Par exemple, mes deux machines (incompatibles):

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

Je soumettais comme un bug au package PECL.

Autres conseils

PHP considère tous besoin / include des fichiers texte brut, et les traitera comme tel jusqu'à ce qu'il voit soit le <? (SHORTTAG), <?php (étiquette régulière), ou <% (balise ASP) des séquences de caractères dans le flux, après laquelle elle passe en mode PHP, jusqu'à ce qu'elle touche la fin de l'écriture ou de la balise de fermeture correspondante (?>, %>). En tant que tel, il n'y a pas moyen d'avoir PHP traiter une entrée compilé comme code de programme. Même un EVAL ne sera pas utile, puisque ce même invoque tout analyseur qui n'a pas déclenché de l'entrée binaire en premier lieu.

Code BZippée lui-même n'est pas exécutable non plus, à moins qu'il soit été enveloppé par un talon auto-extracteur.

Comme il semble être BZippée, pourquoi ne pas essayer un-bzipping le fichier et voir ce que vous obtenez? Peut-être que le fichier de classe a été téléchargée en tant que distribution de .bz2 et simplement obtenu renommé. La copie non compressée peut contenir les emballages appropriés pour permettre l'exécution.

je lutte depuis longtemps à travailler avec bcompiler mais étonnamment j'ai trouvé une solution très simple où vous pouvez vous compiler site tout en un seul clic. vous pouvez suivre les étapes ci-dessous: -

  1. Téléchargez et installez Wampserver (toute édition).

  2. Téléchargez et installez Wampserver PHP version php 5.2.5 Addons

  3. cliquez sur Wampserver -> PHP -> Version -.> 5.2.5 de la barre des tâches (il va changer votre version actuelle de PHP 5.2.5)

  4. Sélectionnez Wampserver -> PHP -> Extension -> php_bcompiler (il permettra bcompiler sur votre ordinateur).
    Étapes ci-dessus suffisent si vous pouvez compilateur le script votre propre mais pour le rendre, vous pouvez facilement continuer les étapes suivantes.

  5. Télécharger bcompiler GUI .

  6. Sélectionnez le dossier sur l'interface graphique Bcompiler et cela compilateur votre site tout en un seul clic.

profiter PHP | Profitez de l'Open Source

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top