PHP bietet einige Funktionen an um Dateien auszuführen. Das Problem von z.B System() und exec() ist allerdings, dass nicht der komplette Text zurückgegeben wird. Hier ist proc_open() wesentlich genauer. Wird zum Beispiel unter Linux eine Datei ausgeführt die nicht vorhanden und nicht die benötigte Berechtigungen besitzt, werden die entsprechenden Fehlermeldungen nur über proc_open() "ausgegeben".
Ich habe die Funktion std auf php.net gefunden, ist aber mittlerweile aus den Kommentaren rausgeruscht, deswegen hier der die Funktion.