Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PHP CLI sans ouverture de fenêtre sous Windows

1 réponse
Avatar
Otomatic
Bonjour,

Je pense que cela concerne plutôt Windows en ligne de commande que PHP,
mais sait-on jamais, un utilisateur a peut-être trouvé une solution.

Dans un script PHP, lancé en CLI par php.exe, je vais récupérer les
Define Apache par la commande :

$command = $c_apacheExe.' -t -D DUMP_RUN_CFG';
$output = `$command`;

Nota : $c_apacheExe = le chemin absolu complet sur httpd.exe

Ça fonctionne parfaitement, mais ça ouvre temporairement une fenêtre de
commande sur le bureau.
J'ai essayé tout un tas de possibilités :
$command = 'start /b '.$c_apacheExe.' -t -D DUMP_RUN_CFG';
ou directement :
$output = `$c_apacheExe -t -D DUMP_RUN_CFG`;
ou
$output = `start /b $c_apacheExe -t -D DUMP_RUN_CFG`;
ou
$output = shell_exec($command);
ou
ob_start();
passthru($command);
$output = ob_get_contents();
/ob_end_clean();

Mais, rien à faire, cette « foutue » fenêtre s'ouvre temporairement.

Quelqu'un a-t-il une solution pour que la fenêtre de commande Windows ne
s'ouvre pas ?

Nota : le problème est le même avec php-win.exe à la place de php.exe

Merci
--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Technologie aéronautique - http://aviatechno.net - Les anciens de Vilgénis

1 réponse

Avatar
Eric Demeester
[ xpost fr.comp.os.ms-windows, pas de fu2 positionné ]
Bonjour,
Otomatic (Tue, 01 Nov 2016 16:49:37 +0100 - fr.comp.lang.php) :
Je pense que cela concerne plutôt Windows en ligne de commande que PHP,

Je pense aussi.
mais sait-on jamais, un utilisateur a peut-être trouvé une solution.
Dans un script PHP, lancé en CLI par php.exe, je vais récupérer les
Define Apache par la commande :
$command = $c_apacheExe.' -t -D DUMP_RUN_CFG';
$output = `$command`;

[...]
Ça fonctionne parfaitement, mais ça ouvre temporairement une fenêtre de
commande sur le bureau.

En torturent mon moteur de recherche, j'ai trouvé ça :
(http://tecfa.unige.ch/guides/php/php5_fr/features.commandline.html)
« Depuis PHP 5, un nouveau fichier php-win.exe est installé. C'est
l'équivalent de la version CLI à ceci près qu'il n'affiche rien et
ainsi ne fait pas apparaître de console (aucune fenêtre "dos"
n'apparaît à l'écran). Ce comportement est similaire à celui de
php-gtk. Vous pouvez l'activez avec l'option --enable-cli-win32. »
Mais tu nous dis :
Nota : le problème est le même avec php-win.exe à la place de php.exe

Dommage :)
Soit le comportement de php-win dépend de la version de Windows utilisée
(tu n'as pas précisé la tienne), soit il te manque un paramètre.
Il y a une série de propositions ici :
http://www.developpez.net/forums/d8867/general-developpement/programmation-systeme/windows/scripts-batch/lancer-bat-cacher-fenetre-dos/
En résumé, ça revient à lancer l'exécution depuis un script écrit dans
un autre langage (vbs, c++...).
Sinon, à défaut de ne pas ouvrir la fenêtre, il semble y avoir moyen de
la réduire à l'exécution en incluant ta ligne de commande dans un
fichier batch débutant par start /min.
J'ai élargi la diffusion à fr.comp.os.ms.windows, peut-être que les
contributeurs de ce groupe auront des réponses ou des idées.