phpbar.de logo

Mailinglisten-Archive

[php] Shell-Befehle =?iso-8859-1?Q?ausf=FChren?=

[php] Shell-Befehle =?iso-8859-1?Q?ausf=FChren?=

Sandor Wonschik Sandor.Wonschik_(at)_esd.h.uunet.de
Wed, 25 Aug 1999 13:50:50 +0200


Egon Schmidt wrote:

>So müßte es gehen:
>        $out=`ls ; ls >> datei`;

Wenn der Browser zu dieser Zeile kommt, gibt es folgende Fehlermeldung:
The document contained no data.
Try again later, or cantact the server's administrator. 

Danach wird das php-File nicht mehr weiter ausgewertet und wird
abgebrochen.

Danke für den folgenden Hinweis:
>        $out="ls; ls; ls >> datei";
>        exec($out,$tmp);
>        while (list($k,$v) = each($tmp)) {
>                echo $v . " ";

Aber:
Mehrere in $out eingetragene und mit Semikolon voneinander getrennte
Befehle werden ausgeführt, aber der Befehl zum Anlegen des Files "datei"
wird nicht ausgeführt! Jedenfalls war hinterher an keiner Stelle auf der
Platte dieses File zu finden.

Wieso?

Weiterhin bleibt das Problem, daß ich per PHP Betriebssystemaufrufe
machen möchte. Mindestens für das Verständnis dieser Vorgänge sollte das
eigentlich doch auch viele andere interessieren. In meiner vorherigen
Mail habe ich ein Beispiel angegeben, das als Shell-Script wunderbar
funktioniert, in der Umsetzung in PHP aber nicht! Ich könnte natürlich
von PHP aus das Shellscript starten, aber dann habe ich kein "reines"
PHP mehr, ich müßte die Shellscripte separat pflegen.

Bye
Sandor

abgeändertes Beispiel (zum ausprobieren :-)):
<?
        $out=     "for NAME in `ls *.php3`; do ";
        $out=$out."ln -sf \$NAME `echo \$NAME | sed s/.php3/.phps/g`;";
        $out=$out."done";

        /* ist die folgende Zeile aktiv, kommt gar nix mehr */
        /*$out=escapeshellcmd("$out");*/
	
	/* zur Kontrolle */
        echo "$out";      
                      
        /* welchen Befehl sollte man für o.a. Script verwenden? */
	system($out);
        passthru($out);
        exec($out);
?>


php::bar PHP Wiki   -   Listenarchive