array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.system.php', 1 => 'system', ), 'up' => array ( 0 => 'ref.exec.php', 1 => 'Program Çalıştırma İşlevleri', ), 'prev' => array ( 0 => 'function.shell-exec.php', 1 => 'shell_exec', ), 'next' => array ( 0 => 'book.parallel.php', 1 => 'parallel', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/exec/functions/system.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
system — Belirtilen harici komutu çalıştırır ve çıktısını gösterir
system() işlevi C dilindeki adaşı gibi verilen
komut
'u çalıştırır ve sonucunu çıktılar.
PHP bir sunucu modülü olarak çalışırken, bu işlev her çıktı satırından sonra HTTP sunucusunun çıktı tamponunu boşaltmaya çalışır.
Bir komutu, çıktısı ortamla etkileşime girmeden çalıştırmak isterseniz passthru() işlevini kullanın.
komut
Çalıştırılacak komut.
sonuç
Bu bağımsız değişken belirtilmişse çalıştırılan komutun çıktısı bu değişkene yazılır.
Başarısızlık durumunda false
aksi takdirde komut çıktısının son satırı
döner.
Örnek 1 - system() örneği
<?php
echo '<pre>';
// "ls" kabuk komutunun sonucunu çıktılar ve
// çıktının son satırını $son_satır ile döndürürken,
// işlevin dönüş değerini $sonuç değişkenine kaydeder.
$son_satır = system('ls', $sonuç);
// Bilgileri basalım
echo '
</pre>
<hr />Çıktının son satırı: ' . $son_satır . '
<hr />Dönüş değeri: ' . $sonuç;
?>
Kullanıcı kaynaklı verilerin bu işlev üzerinden aktarımına izin verilecekse, kullanıcının bazı komutlar çalıştırarak sistemi kandıramaması için escapeshellarg() veya escapeshellcmd() işlevleri kullanılabilir.
Bilginize:
Eğer bir uygulama bu işlevle başlatılmışsa uygulamanın artalanda çalışmasını sürdürebilmesi için uygulama çıktısı ya bir dosyaya ya da başka bir çıktı akımına yönlendirilmelidir. Aksi takdirde, uygulama sonlanana kadar PHP askıda kalacaktır.