Carregando ...
Desculpe, ocorreu um erro ao carregar o conteúdo.

Re: [php-pt] Response.Clear??

(26984)
  • Joao Prado Maia
    1 de jul de 2001 Expandir mensagens
    Exibir fonte
    • 0 Anexo
      On Sun, 1 Jul 2001, Eduardo Scoz wrote:

      > Só para concluir, a diferença entre a utilização dos dois métodos é muito clara...
      >
      > Fazer buffer de saída consome muito mais memória e tempo de processamento. Por isso esse método sempre foi descartado no PHP... Mas como a galera que vem do ASP é grande, foi criada as funções de controle de saída no php4..
      >

      Mas por outro lado é também uma forma bem interessante de salvar o
      resultado de uma página num buffer e checar por erros. Por exemplo, usar
      as funções de controle de output dentro da página normalmente e se algo de
      errado acontecer, como o servidor de banco de dados estando fora do ar,
      mostrar uma página diferente.

      Isso não seria difícil de se fazer com as funções do PHP de pegar erros e
      tambem essas funcoes de controle de output. Um exemplo bem simples disso
      pode ser visto num artigo que escrevi mas ainda nao foi publicado:

      <?php
      // start output buffering
      ob_start();

      // set the error reporting level
      error_reporting(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE);

      function my_handle_error()
      {
      ob_end_clean();
      include("error_page.html");
      exit;
      }
      // so any error in the PHP code itself (E_USER_ERROR, E_USER_WARNING or
      // E_USER_NOTICE) will be handled by the function above
      set_error_handler("my_handle_error");

      require_once("DB.php");
      $dsn = array(
      'phptype' => "mysql",
      'hostspec' => "localhost",
      'database' => "test_db",
      'username' => "scott",
      'password' => "wrong_password"
      );
      // now any errors on the PEAR code will be handled by the same function
      above
      PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'my_handle_error');
      $dbh = DB::connect($dsn);

      // flush the buffered page if no errors happened
      ob_end_flush();
      ?>

      O código acima fala um pouco sobre as funções de administração de erros do
      PEAR ( http://pear.php.net ) em conjunto com as funções nativas do PHP.

      Espero que isso possa ajudar,
      Joao

      --
      João Prado Maia <jpm@...>
      http://phpbrasil.com - php com um jeitinho brasileiro
      --
      Precisando de consultoria em desenvolvimento para a Internet ?
      Impleo.net - http://impleo.net/?lang=br
    • Mostrar todas as 5 mensagens neste tópico