2017-08-18 3 views
1

J'ai un fichier batch. Dans ce fichier batch est le code PHP. Le "seul" problème que j'ai est que le "préambule" est imprimé quand PHP est exécuté. "@rem veille ..."Éliminer le contenu en ligne de PHP avant d'ouvrir le tag sur l'interface de ligne de commande

Exemple de fichier batch:

@rem Standby... <?php ob_start(); ?> 
@echo off 
echo Now in %comspec% 
echo I am on %OS% with %NUMBER_OF_PROCESSORS% CPUs  
echo Now handing off to PHP... 
php.exe -f "%~f0" -- %* 
goto :eof 
<?php ob_clean(); ob_end_flush(); 
print "Now in PHP ".PHP_VERSION.PHP_EOL; 
print "All done!"; 

qui sort quelque chose comme:

Now in C:\WINDOWS\system32\cmd.exe 
I am on Windows_NT with 4 CPUs 
Now handing off to PHP... 
@rem Standby... Now in PHP 7.1.0 
All done! 

Je sais que cela est dû à la nature de l'analyseur de PHP qui considère tout ce qui est en dehors des balises contenu en ligne qui devrait être affiché. Ce script peut être utilisé dans un environnement où je ne peux pas dépendre de la configuration de PHP.

Comment puis-je faire en sorte que PHP rejette ce contenu en ligne? (Sans modifier la configuration)

PHP 7.1 sur Win10

+0

Pour ce que ça vaut, pour justifier cette folie est tentée ici: [Batch emballage scripts PHP] (https: //nxsys.assembla. com/spaces/onx/wiki/Batch_wrapping_PHP_scripts) – feamsr00

Répondre

0

Vous devez juste vous assurer mise en mémoire tampon de sortie est activée au niveau de la configuration, vous aurez pas besoin d'appeler ob_start(). C'est assez simple à faire universellement via les paramètres de la ligne de commande. Exemple:

@echo off 
echo Now in %comspec% 
echo I am on %OS% with %NUMBER_OF_PROCESSORS% CPUs  
echo Now handing off to PHP... 
php.exe -d output_buffering=On -f "%~f0" -- %* 
goto :eof 
<?php ob_clean(); ob_end_flush(); 
print "Now in PHP ".PHP_VERSION.PHP_EOL; 
print "All done!"; 

rendements:

Now in C:\WINDOWS\system32\cmd.exe 
I am on Windows_NT with 4 CPUs 
Now handing off to PHP... 
Now in PHP 7.0.4 
All done! 
+0

Hmm cette suggestion, il se sent familier d'une certaine façon ... Je suis curieux quant à votre inspiration? – feamsr00