(PHP 4, PHP 5, PHP 7, PHP 8)
popen — Bir süreç tanıtıcısı açar
Belirtilen komut tarafından çatallanarak
çalıştırılan bir sürece bir boruhattı açar.
komutKomut.
kip
Kip. Okumak için 'r' veya yazmak için
'w' aktarılır.
Windows üzerinde, popen() öntanımlı olarak metin
kipindedir, örneğin, borudan okunan veya boruya yazılan her
\n karakteri \r\n haline
getirilir. Bu istenmiyorsa, kip bağımsız değişkenine
okuma için 'rb' veya yazma için
'wb' atanarak ikil kip zorlanabilir.
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. Kip 'r' ise dönen dosya konumlayıcı komutun standart çıktısına eşitlenir. Kip 'w' ise dönen dosya konumlayıcı komutun standart girdisine eşitlenir.
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.