PHP / Zend: Belirli bir durum için bir web sayfasında uyarıları görünmüyor tarayıcıları zorlamak nasıl?

1 Cevap php

Ben böyle twitter güncellemeleri almak çalışıyorum:

try {

  $doc = new DOMDocument();
  $doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
  $isOK = true;

} catch( Zend_Exception $e ) {
  $isOK = false;
}

Sonra $ İSOK = true internet bağlantısı ile sorun yoksa; ayarlanır. Yükleme twitter sayfasında bir sorun varsa, ancak o zaman şu uyarıları gösteriyor ve $ İSOK = false değildir;

Warning: DOMDocument::load(http://twitter.com/statuses/user_timeline/1234567890.rss) [domdocument.load]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vcred/application/controllers/IndexController.php on line 120

Ben her durumda benim web sayfasında uyarı yukarıdaki görmek istemiyorum. Herhangi bir fikir?

Teşekkürler

1 Cevap

Çeşitli seçenekleri:

Suppress all errors for just this function call

@$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');

aynı olduğu

$oldLevel = error_reporting(0);
$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
error_reporting($oldLevel);

Hata ayıklamak için kod zor yapar gibi baskılayıcı hataları bu şekilde genel olarak, hoş karşılanmaz. Şarapnel işaret gibi, yine bir üretim sistemi tüm hata mesajlarının kamu ekranı devre dışı bırakmak istiyorum. Dev sistemleri hakkında error_reporting(-1); , which would enable E_ALL ve E_STRICT kullanımı teşvik edilmektedir.

Kullanmak try/catch , you can also change default error handling ve yaparak istisnalar tüm hataları dönüştürmek istiyorsanız

function myErrorHandler($errno, $errstr, $errfile, $errline) {
    throw new Exception($errstr, $errno);
}
set_error_handler("myErrorHandler");

Bu olsa bir küresel değişim ve kaldırdı her şeyi etkiler. Ayrıca kodu daha sonra catch(Exception $e) yerine Zend_Exception kullanımı olurdu, ama o iş olur. Yukarıdaki her şeyi, hatta Uyarıları dönüştürmek istiyorsunuz, böylece daha sonra bu erişmeye çalışıyorsanız siz de $isOk tanımsız olma konusunda bir özel durum alacağınızı unutmayın. Beğeninize işleyicisi uyum ve daha rafine sürümleri user comments for set_error_handler kontrol çekinmeyin.

Başka bir küresel değişim, uygulama klasöründe application.ini değiştirmek olacaktır, örneğin icar Zend Framework kontrolü hata işleme:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

Ihtiyaçlarınıza bu değiştirin. Bunlar PHP.ini de aynıdır, örneğin

display_errors:

Bu hataları çıkış parçası olarak ekrana basılı olmalı ya da kullanıcıdan gizli olmalıdır eğer belirler.

display_startup_errors:

Display_errors olsa bile, PHP'nin başlatılırken oluşan hatalar gösterilmez. Bu güçlü hata ayıklama display_startup_errors uzak tutmak için tavsiye edilir.