Ativa o buffer de saída

# ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_start — Ativa o buffer de saída

### Descrição

function ob_start(?callable `$callback` = `null`, int `$chunk_size` = 0, int `$flags` = `PHP_OUTPUT_HANDLER_STDFLAGS`): bool

Esta função irá ativar o buffer de saída. Enquanto o buffer de saída estiver ativo, não é enviada a saída do script, (outros que não sejam cabeçalhos), ao invés disto a saída é guardada em um buffer interno. Consulte Que Saída é Armazenada em Buffer? sobre exatamente que saída é afetada.

Buffers de saída são empilháveis, ou seja, ob_start() pode ser chamada enquanto outro buffer estiver ativo. Se múltiplos buffers de saída estiverem ativos, a saída será filtrada sequencialmente atráves de cada uma delas na ordem de aninhamento. Consulte Aninhando Buffers de Saída para mais detalhes.

Consulte Buffers de Saída em Nível de Usuário para uma descrição detalhada de buffers de saída.

### Parâmetros

`callback`

  Uma função `callback` do tipo callable pode ser especificada. Ela também pode ser ignorada passando-se `null`.

  `callback` é chamada quando o buffer de saída é descarregado (enviado), limpo, ou quando o buffer de saída é descarregado no final da execução do script.

  A assinatura da função `callback` deve ser da seguinte forma:

  function handler(string `$buffer`, int `$phase` = ?): string
  `buffer`
    O conteúdo original do buffer.
  `phase`
    Máscara de bits das constantes `PHP_OUTPUT_HANDLER_*` . Consulte Opções Passadas aos Manipuladores de Saída para mais detalhes.

  Se `callback` retornar `false`, o conteúdo do buffer é retornado. Consulte Valores de Retorno do Menipulador de Saída para mais detalhes.

  Aviso

  Chamar qualquer das funções a seguir de dentro de um manipulador de saída resultará em erro fatal: ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_flush() e ob_start().

  Consulte Manipuladores de Saída e Trabalhando com Manipuladores de Saída para mais detalhes sobre as funções `callback` (manipuladores de saída).

`chunk_size`

  Se o parâmetro opcional `chunk_size` for informado, o buffer será descarregado depois que algum bloco de código que produza saída faça com que o tamanho do buffer fique igual ou maior que `chunk_size`. O valor padrão é `0`, que significa que toda a saída fica em buffer até que ele seja desligado. Consulte Tamanho do Buffer para mais detalhes.

`flags`

  O parâmetro `flags` é uma máscara de bits que controla as operações que podem ser realizadas no buffer de saída. O padrão é permitir que o buffer de saída possa ser limpo, descarregado ou removido, o que pode ser configurado explicitamente através das opções de controle de buffer . Consulte Operações permitidas em buffers para mais detalhes.

  Cada opção controla o acesso das funções, como descrito a seguir:

  Constante | Funções
  --- | ---
  `PHP_OUTPUT_HANDLER_CLEANABLE` | ob_clean()
  `PHP_OUTPUT_HANDLER_FLUSHABLE` | ob_flush()
  `PHP_OUTPUT_HANDLER_REMOVABLE` | ob_end_clean(), ob_end_flush(), ob_get_clean() e ob_get_flush()

  > Nota: Antes do PHP 8.4.0, o parâmetro flags poderia definir também as opções de status do manipulador de saída.

### Valor Retornado

Retorna `true` em caso de sucesso ou `false` em caso de falha.

### Exemplos

Exemplo #1 Exemplo de uma função de callback

    <?php

    function callback($buffer)
    {
      // substitui apples por oranges
      return (str_replace("apples", "oranges", $buffer));
    }

    ob_start("callback");

    ?>
    <html>
    <body>
    <p>It's like comparing apples to oranges.</p>
    </body>
    </html>
    <?php

    ob_end_flush();

    ?>

O exemplo acima produzirá:

    <html>
    <body>
    <p>It's like comparing oranges to oranges.</p>
    </body>
    </html>

Exemplo #2 Criando um buffer de saída não apagável

    <?php

    ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

    ?>

### Veja Também

- ob_get_contents() - Retorna o conteúdo do buffer de saída
- ob_end_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo e desliga-o
- ob_end_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo e desliga o buffer de saída ativo
- ob_implicit_flush() - Liga ou desliga o descarregamento implícito
- ob_gzhandler() - Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
- ob_iconv_handler() - Converte codificação de caracteres como manipulador de buffer de saída
- mb_output_handler() - Callback converte a codificação de caracteres no buffer de saída
- ob_tidyhandler() - Função de retorno ob_start para reparar o buffer

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open