Php mkdir () özel durum işleme

2 Cevap php

mkdir () bu soru bir hata yakalama hakkında daha düzgün çalışıyor. Bunun yerine dizin var bu baskı Ben sadece özel bir günlüğüne bana bir mesaj yazmak istiyorum. Nasıl bu durum oluştururum.

Uyarı: mkdir () [function.mkdir]: Dosya var

2 Cevap

Ben sadece özel bir günlüğüne bana bir mesaj yazmak istiyorum.

çözüm çok kolay. PHP zaten sizin için her şey var:

ini_set('display_errors',0);
ini_set('log_errors',1);
ini_set('error_log','/path/to/custom.log');

or same settings in the php.ini or .htaccess
I think it would be better than write each possible error manually

Eğer (bu hata ama uygulama mantığı parçası değildir olabilir gibi) bu hata günlüğe olmak istemiyorsanız, önce klasör varlığını kontrol edebilirsiniz

if (!file_exists($folder)) mkdir($folder);
else {/*take some appropriate action*/}

Sen display_errors setting, or case by case by prefixing the function call with an @ karakteri ile (yapılandırma veya çalışma zamanı) küresel hata iletileri bastırmak yoluyla görüntülenmesini hata mesajı durdurabilirsiniz. (Örneğin, @mkdir('...')).

Daha sonra error_get_last when mkdir getirileri ile kontrol edebilirsiniz false.

Hata günlüğü küresel kurallarının geçerli. Sen error_log ile elle hataları giriş yapabilirsiniz.

Daha fazla okumak için, Error handling üzerine manuel bölümüne bakın.

Edit:

Yorum önerilen olarak, bir özel hata işleyicisi çözüm, aynı zamanda olası, (sizin uygulanmasına bağlı olarak) belki daha sağlam ama kesinlikle daha şık.

function err_handler($errno, $errstr) {
    // Ignore or log error here
}

set_error_handler('err_handler');

Eğer açıkça echo sürece bu şekilde, hata mesajı, görüntüler olmaz. Bir özel hata işleyicisi error_get_last NULL dönecektir kullanırken olsa da, unutmayın.