PHP popen Dirty hatalar ()

2 Cevap php

Ben popen ile bir dosya arama ():

$fp = @popen("/usr/bin/openssl ...");

Belirli ayrıntılar önemli, ama burada ne olur, ben komutu çalıştırdığınızda Windows CMD bu hataları alırsınız ki yok:

The system cannot find message text for message number 0x3 in the message file for System.

Ben dosya, Windows üzerinde yok biliyorum, ama neden @ hataları susturmak değil mi? Benim kütüphanesi sadece aynı şeyi elde etmek için birkaç farklı yollar dener.

2 Cevap

Bu a error message issued by PHP değil, dolayısıyla PHP'nin hata bastırma geçerli olmayacaktır.

Eğer önceden bir işlemi çalıştırmak veya sistem hataları çıkışını bastırmak olup olmadığını kontrol etmek gerekir.

Dediğiniz gibi bastırılması için, 2>NUL, çalışması gerekir. Dosya hiç var olup olmadığını test etmek için olsa daha iyi olmaz mıydı? Windows makinede, çalıştırılabilir muhtemelen /usr/bin/openssl yer değil.

if (file_exists("/usr/bin/...."))
 popen(".....");

İşte buldum cevabı:

Ben sadece tüm Windows hataları ortadan yapmak için CMD çağrı sonunda "2> nul" yazdı.