PHP Script bir uyarı hata işlemeyi durdurur?

6 Cevap php

Ben bir PHP uyarı üzerine işleme (bu gibi görünüyor) durur bir PHP komut dosyası var. ": Böyle bir dosya ya da dizin yok failed to open stream" -: Hata "fopen PHP Warning" geneldir.

PHP burada durdurmak mı? Ben sadece ölümcül hataları düşündüm?

Bunun devam almak için bir yolu var mı?

6 Cevap

Hataları devam etmek nasıl bilmiyorum, ama iyi bir şey ilk etapta hata önleme olacaktır:

http://php.net/manual/en/function.file-exists.php

http://www.php.net/manual/en/function.is-readable.php

As noted on the php documentation page,

Açık başarısız olursa, E_WARNING seviyesinde bir hata üretilir. Sen kullanabilirsiniz @ bu uyarıyı bastırmak için.

Bir uyarı yayılan ancak komut dosyası yürütme devam eder. Script durur aslında daha büyük olasılıkla uyarı kendisi sonradan ama yapmak için denemek işleme ile ilgili olduğunu.

File_exists ve is_readable kullanmak için önceki öneri iyi bir tanesidir.

Evet, error_reporting() düzeyi yeterince düşük olmalıdır eğer.

Evet, var. Ekle "@" fopen hangi waring neden böyle önce: @fopen(...)

Conrad Meyer PHP manuel sözü ne ek olarak:

$fres = @fopen('file.ext','w+');
if($fres){
  // so anything you want with the file
}

fopen hata döndürür false. Orada fopen bastırıldı bir hata var ve if($fres) kullanmayın zaman, bir sonraki dosya çalışma fonksiyonları $fres geçerli bir dosya tanıtıcı değil söyleyerek hata atmak olacaktır.

Sürdürdü bile, programın, muhtemelen, o gerekiyordu şekilde işe yaramaz. Neyse, durum işleme deneyin:

try {
    # code that may cause an error
}
catch( Exception $e ) {
    # do error handling mechanism
}