Ik draai momenteel een simpel bashscript dat ik via een pagina en wat posts aanroep.
Omdat dit script wel outut geeft op de commandline over wat deze uitgevoerd heeft lijkt het met handig om dit ook in de "succes" pagina te printen.
De methoden zijn exec() passthru() en system(), echter loop ik tegen het probleem aan dat zit alle output aan het eind van het script pas parst in de PHP pagina.
Ik zou dus graag willen dat de gebruiker geen leeg scherm krijgt en dat iedere extra "echo" regel van het bashscript gewoon toegevoegd wordt aan de pagina net zoals op de commandline.
Ik zeg zelf output buffering, ik ben hier alleen geen voorstander van, maar ik denk dat ik niet anders kan. De vraag is alleen hoe de beste manier van toepassen.
Wat ik nu doe is het volgende:
Hiervoor heb ik nog een bunch of HTML staan en er onder ook. Deze output komt dus ergens halverwege.
Nu heb ik ook wel een manieren gezien dat deze output in een textfield werd gedaan, ik weet niet of dit dynamischer is in gebruik dus vandaar dat ik maar een topic aanmaak.
virtual() scheen ook wel bruikbaar maar heb ik verder weinig meer over gelezen.
Ik zeg zelf output buffering, maar ik denk dat dit toch ook mooier op te lossen is.
Omdat dit script wel outut geeft op de commandline over wat deze uitgevoerd heeft lijkt het met handig om dit ook in de "succes" pagina te printen.
De methoden zijn exec() passthru() en system(), echter loop ik tegen het probleem aan dat zit alle output aan het eind van het script pas parst in de PHP pagina.
Ik zou dus graag willen dat de gebruiker geen leeg scherm krijgt en dat iedere extra "echo" regel van het bashscript gewoon toegevoegd wordt aan de pagina net zoals op de commandline.
Ik zeg zelf output buffering, ik ben hier alleen geen voorstander van, maar ik denk dat ik niet anders kan. De vraag is alleen hoe de beste manier van toepassen.
Wat ik nu doe is het volgende:
code:
1
2
3
4
5
| $bashcommand = "/path/naar/mijn/bash met variabelen er achter" exec($bashcommand, $vars); foreach($vars as $var) echo $var."\r\n<br />"; |
Hiervoor heb ik nog een bunch of HTML staan en er onder ook. Deze output komt dus ergens halverwege.
Nu heb ik ook wel een manieren gezien dat deze output in een textfield werd gedaan, ik weet niet of dit dynamischer is in gebruik dus vandaar dat ik maar een topic aanmaak.
virtual() scheen ook wel bruikbaar maar heb ik verder weinig meer over gelezen.
Ik zeg zelf output buffering, maar ik denk dat dit toch ook mooier op te lossen is.