shell_exec ignoriert Bash-Farbcodes?

  • Guten Tag alle zusammen, ich bastel gerade an einer Webübersicht für mein Backup-Verzeichnis. Da ich die Farbausgabe von ls ganz praktisch finde, wollte ich die ausgegeben Farben mit anzeigen.


    Ich benutze shell_exec, um ls -lAh --color=always <pfad> auszuführen. Wenn ich den Befehl manuell in der Bash eingebe, erhalte ich farbigen Output. Mit einer Pipe zu ansi2html (Link) werden die Farbcodes zu HTML/CSS umgewandelt. Dies funktioniert jedoch nur, wenn ich den Befehl ls ... | ansi2html manuell ausführe. Sobald ich den Befehl per shell_exec ausführe, werden überhaupt keine Farbcodes generiert. Woran könnte das liegen?


    MfG

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Bei meinem Test (Webhosting / Expert Light) waren die Farbcodes zumindestens vorhanden…

    PHP
    shell_exec('ls -lisah --color=always')

    Bildschirmfoto_2018-02-06_13-59-31.png


    Ist das bei Dir auch der Fall, oder fehlen die komplett? (Nur sichtbar in der Quelltextansicht vom Browser!)


    Nur so kann man eingrenzen, bei welchem Befehl der Fehler zu suchen ist.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hay,


    optimistisch geraten könnte in dem Fall auch sein: der Nutzer, unter dem PHP läuft, hat eventuell kein farbfähiges Terminal.


    Vielleicht mal "TERM=xterm;ls -lAh --color=always|ansi2html" versuchen. Außerdem schau Dir mal auf php.net an, dass shell_exec diverse Schwierigkeiten mit der Standardausgabe macht, so dass Du u.U. die Ausgabe erst mit tee in eine temporäre Datei "abzweigst" und diese anschließend einliest und ausgibst.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • Die Farbcodes fehlten komplett im Quelltext.


    Danke, das war die Lösung! :) Ich hätte gedacht dass color=always ausreichen müsste... Dann ist das "always" wohl etwas missverständlich.

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com