Burada ele alınmayan birkaç ayrım:
- Exec () ile, bir dizi çıktı satırı alacak isteğe bağlı bir param değişkeni iletebilirsiniz. Bazı durumlarda bu, özellikle komutların çıktısı zaten tablo halinde olduğunda zamandan tasarruf edilebilir.
Karşılaştırmak:
exec('ls', $out);
var_dump($out);
// Look an array
$out = shell_exec('ls');
var_dump($out);
// Look -- a string with newlines in it
Tersine, komutun çıktısı xml veya json ise, her satırın bir dizinin parçası olarak bulunması istediğiniz şey değildir, çünkü girdiyi başka bir forma daha sonra işlemden geçirmeniz gerekir, bu durumda shell_exec kullanın .
Ayrıca shell_exec'in * nix için kullanılanlar için backtic operatörü için bir takma ad olduğunu belirtmek gerekir.
$out = `ls`;
var_dump($out);
exec, yürütülen komuttan dönüş kodunu sağlayacak ek bir parametreyi de destekler:
exec('ls', $out, $status);
if (0 === $status) {
var_dump($out);
} else {
echo "Command failed with status: $status";
}
Shell_exec kılavuz sayfasında belirtildiği gibi, gerçekten yürütülmekte olan komuttan bir dönüş kodu istediğinizde, exec kullanmaktan başka çareniz yoktur.
date
,whoami
,ifconfig
,netstat
.