Kris: Shell - FALSE or TRUE ausgeben :/

Hi !

Ich möchte per exec() system() passthru() ein mkdir ausführen.
Problem ist er übernimmt nicht meine Parameter :/

passthru(mkdir /asdasdasd/asddasdasdkf/kjkaljdklasj);

da dies hier nicht auf dem Server möglich ist müsste er noch eine "1" bei der Variable $? ausgeben ...

kann mir jemand sagen wie ich den Befehl
a) richtig ausführe
und
b) die Variable $? direkt danach richtig ausgeben lasse ?

mfg

KRIS

  1. Moin!

    Ich möchte per exec() system() passthru() ein mkdir ausführen.

    Was recht ungewöhnlich ist, schließlich existiert eine entsprechende PHP-Funktion doch bereits: http://www.php.net/mkdir

    Problem ist er übernimmt nicht meine Parameter :/

    passthru(mkdir /asdasdasd/asddasdasdkf/kjkaljdklasj);

    Kann ich verstehen, passthru() erwartet einen String als Befehl - ein String zeichnet sich aber durch Anführungszeichen als Begrenzer aus.

    Und es wäre eventuell - falls irgendwelche dynamisch eingefügten Stringbestandteile in den Befehl wandern sollen - eine sehr sehr gute Idee, escapeshellarg() und/oder escapeshellcmd() auf den String bzw. seine Teile anzuwenden, wie in http://www.php.net/passthru empfohlen.

    da dies hier nicht auf dem Server möglich ist müsste er noch eine "1" bei der Variable $? ausgeben ...

    PHP kennt keine Variable $?, sprichst du vielleicht doch irrtümlich von Perl?

    kann mir jemand sagen wie ich den Befehl
    a) richtig ausführe

    bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

    Mit anderen Worten:

      
    mkdir("/asdasdasd/asddasdasdkf/kjkaljdklasj",0755);  
    
    

    sollte ausreichen.

    b) die Variable $? direkt danach richtig ausgeben lasse ?

    Wie erwähnt: $? ist in PHP kein gültiger Variablenname. Folglich kann man deren Inhalt auch nicht ausgeben lassen.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!