(PHP 4, PHP 5)
system — Belirtilen harici komutu çalıştırır ve çıktısını gösterir
$komut
[, int &$dönüş_değeri
] )
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.
dönüş_değeri
Bu değiştirge 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 verecekseniz, kullanıcının bazı komutlar çalıştırarak sistemi kandıramaması için escapeshellarg() veya escapeshellcmd() işlevlerini kullanınız.
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.
Bilginize: Güvenli kip etkinken, dosyaları sadece safe_mode_exec_dir ile çalıştırabilirsiniz. Uygulamadan kaynaklanan sebeplerle çalıştırılabilirin dosya yolunda .. bileşenine şimdilik izin verilmemektedir.
güvenli kipin etkin kılınmasıyla, komut dizgesi escapeshellcmd() ile öncelenir. Böylece, echo y | echo x komut dizgesi echo y \| echo x haline gelir.