Mailinglisten-Archive |
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