Cours PHP exécutable à l'intérieur du script?

Je veux exécuter un PHP cli programme PHP cli. Sur certaines machines, où cela va lancer, à la fois php4 et php5 sont installés. Si je lance le programme externe comme

php5 outer.php

Je veux que le script interne pour être exécuté avec la même version de php. En Perl, je voudrais utiliser $^X pour obtenir l'exécutable perl. Il semble il n'y a pas de variable en PHP?

Maintenant, je suis en utilisant $_SERVER['_'], parce que bash (et zsh) définir la variable d'environnement $_ à la dernière exécuter le programme. Mais, je préfère ne pas compter sur une coque spécifique de l'idiome.

Mise à JOUR: Version différences sont mais les un problème. Si PHP n'est pas dans le PATH, par exemple, ou qui n'est pas la première version trouvée dans le CHEMIN, les suggestions pour trouver les informations de version ne va pas aider.

En outre, csh et variantes semblent pas régler la $_ variable d'environnement pour leurs processus, de sorte que la solution n'est pas applicable.

Mise à JOUR 2: j'ai été en utilisant $_SERVER['_'], jusqu'à ce que j'ai découvert qu'il ne veut pas faire la bonne chose en vertu de xargs (ce qui est logique... zsh il définit à la commande qu'il a couru, qui est xargs, pas php5, et xargs ne modifie pas la variable). Tombant en arrière à l'aide:

$version = explode('.', phpversion());
$phpcli = "php{$version[0]}";
Est-il possible de simplement conditionnellement inclure l'autre fichier PHP? C'est la meilleure façon de s'assurer de la inclus le code tourne avec le même interprète comme y compris le code.
Point intéressant. Dans ce cas particulier, une partie de la raison pour laquelle il est exécuté comme un sous-processus est à l'intérieur des appels de script "exit ()" à divers endroits.

OriginalL'auteur benizi | 2010-03-03