popen

(PHP 4, PHP 5, PHP 7, PHP 8)

popenBir süreç tanıtıcısı açar

Açıklama

popen(string$komut, string$kip): resource|false

Belirtilen komut tarafından çatallanarak çalıştırılan bir sürece bir boruhattı açar.

Bağımsız Değişkenler

komut

Komut.

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.

Dönen Değerler

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.

Örnekler

Ö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);


$bt = popen('/bir/yol/calistirilabilirdosya 2>&1', 'r');
echo
"'$tanıtıcı'; " . gettype($bt) . "\n";
$okunan = fread($bt, 2096);
echo
$okunan;
pclose($bt);
?>

Notlar

Bilginize:

İki yönlü destek arıyorsanız proc_open() kullanın.

Ayrıca Bakınız

  • pclose() - Bir süreç tanıtıcısını kapatır
  • fopen() - Bir dosya veya URL'yi açar
  • proc_open() - Bir komutu çalıştırır ve G/Ç için bir dosya tanıtıcı açar
To Top