Bonjour à tous,
J'ignore si ce que je cherche à faire est faisable en PHP ou se verrait préférable en JS mais puisqu'aucun de mes essais n'aboutit, je viens tenter d’obtenir de l'aide ici ^^"
Problème :
J'ai un serveur Linux sur lequel est hébergé un site qui génère des résultats dans des supers fichiers .txt ...
Mon but, simplement, les imprimer dès leurs générations de façon automatique mais surtout "PURE", soit sans fioriture du genre des rajouts de mise en page qu'on trouve sur une impression HTML...
En conséquences je me tourne vers un Script MSDOS (.bat) qui, avec la fonction PRINT, serait capable d'imprimer ce que je veux, comme je le veux avec une commande telle que :
(Mon imprimante est distribuée par 0.0.0.0 sur le réseau (oui l'IP ici est faux), %CD% renvois le répertoire courant du Script, puisque le fichier .txt est au même endroit)
Code : Sélectionner tout - Visualiser dans une fenêtre à part print /D:\\0.0.0.0\IMPRIMANTE_RESEAU %CD%\test_imp.txt
(Je n'ai pas trouvé directement en PHP...)
Je test le tout en local pour commencer, p'ti serveur WAMP, projet PHP 7.0 / Laravel 5.2 ...
Tout va bien, tout est beau, mes scripts fonctionnent, l'impression se fait, oui mais voilà : lancer ce script en PHP (après la génération du document.txt) je n'y arrive résolument pas ..
J'ai bien des pistes telles que :
Mais rien à faire ! La première tourne 1H sans succès et la seconde m'affiche le contenu du .bat sans rien exécuter -_-
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php exec('start C:\wamp\www\mon_projet\test.bat', $output); print_r($output); ?> -- Ou encore : -- <?php $output = exec('C:/wamp/www/mon_projet/test.bat'); print_r($output); ?> -- Avec, dans le .bat, une ligne : -- cd %~dp0 -- --
Mon script est pour l'instant une simple vérification telle que :
Qui fonctionne bien lors-qu’exécutée à part...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @echo off cd %~dp0 echo HELLO CMD pause > nul
A savoir que le script est placé dans le dossier public de mon projet de test, soit réellement : C:\wamp64\www\mon_projet\public\mon-script.bat.
La page depuis laquelle je tente son appel se trouve quant-à-elle dans "views" (c'est un projet laravel) soit : C:\wamp64\www\mon_projet\resources\views\welcom.php.
J'ai essaie des appels de mon script depuis le chemin absolu, comme relatif, y comprit avec la fonction url(); qui me retourne l'URL du projet (http://localhost/mon_projet/public/), y compris en indiquant pas "/public"....
Mais ça ne change rien, sinon l'affichage du contenu qui disparait..
Cet affichage prouve bien que mon Application accède au bon fichier non ?!
Je reste sur la syntaxe suivante :
Si je laisse juste la fonction exec telle quelle (sans $output) et que je la débug, j'en vois encore le contenu mais rien ne s'exécute !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $output = exec('C:\wamp64\www\mon_projet\public\mon-script.bat'); print_r($output); ?>
BREF, j'ai besoin de votre aide et je m'excuse si comme à mon habitude je tourne autour d'un misérable ";" qui manque et d'une erreur toute c*nne ^^".
Partager