(PHP 4, PHP 5)
popen — Bir süreç tanıtıcısı açar
$komut
, string $kip
)Belirtilen komut tarafından çatallanarak çalıştırılan bir sürece bir boruhattı açar.
komut
Komut.
kip
Kip.
fopen() işlevi tarafından döndürülenden farklı olarak hem okuma hem de yazma için kullanılabilen ve pclose() ile kapatılması gereken bir dosya tanıtıcısı ile döner. Bu tanıtıcı, fgets(), fgetss() ve fwrite() işlevleri tarafından kullanılabilir.
Bir hata oluşursa FALSE
döner.
Örnek 1 - popen() örneği
<?php
$handle = popen("/bin/ls", "r");
?>
Belirtilen komut dosyası bulunamazsa da geçerli bir tanıtıcı döner. Bu tuhaf görünebilir fakat böyle olması gerekir; böylece kabuk tarafından döndürülen hata iletisine erişmeniz sağlanır:
Örnek 2 - Hata döndüren popen() örneği
<?php
error_reporting(E_ALL);
/* Komutu std. hataya yönlendirelim. */
$bt = popen('/bir/yol/calistirilabilirdosya 2>&1', 'r');
echo "'$tanıtıcı'; " . gettype($bt) . "\n";
$okunan = fread($bt, 2096);
echo $okunan;
pclose($bt);
?>
Bilginize:
İki yönlü destek arıyorsanız proc_open() kullanın.
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.