Função php ob_start

Função php ob_start
O ob_start () é uma função interna do PHP para ativar o buffer de saída. Se o buffer de saída estiver ativado, toda a saída será armazenada no buffer interno e nenhuma saída do script será enviada para o navegador. Algumas outras funções internas são usadas com a função ob_start (). A função ob_get_content () é usada para armazenar o conteúdo do buffer interno em uma variável.

A função ob_end_flush () é usada para imprimir o conteúdo do buffer interno. A função ob_end_clean () é usada para limpar o conteúdo do buffer interno. Os usos da função ob_start () no PHP mostrou neste tutorial.

Sintaxe:

Todos os argumentos das funções ob_start () são opcionais e podem levar três argumentos. A sintaxe desta função é dada abaixo.

bool ob_start (chamável $ callback = null, int $ chunk_size = 0, int $ flags = php_output_handler_stdflags)
  • O primeiro argumento opcional leva um nome de função de retorno de chamada para modificar o conteúdo do buffer antes de enviar para a saída.
  • O segundo valor opcional é usado para definir o tamanho do buffer e o valor padrão desse argumento é 0.
  • O terceiro argumento opcional é usado para definir a máscara de bits que define quais operações são permitidas e quais não são permitidas. O valor padrão desse argumento é php_output_handler_stdflags que indica que as funções ob_flush (), ob_clean (), ob_get_flush (), ob_end_flush () e ob_end_clean () são permitidas.
  • Ele retorna verdadeiro em sucesso e retornos falso na falha.

Diferentes usos da função ob_start ()

Os usos da função ob_start () com outras funções relacionados ao buffer foram explicados nesta parte do tutorial.

Exemplo 1: Uso da função ob_start () sem nenhum argumento

Crie um arquivo php com o seguinte script para saber o uso da função ob_start () sem nenhum argumento. Dois valores de string foram enviados para o buffer depois de chamar a função ob_start (). A função ob_end_clean () foi chamada no script para limpar o buffer depois de chamar a função ob_start () na primeira vez. Para isso, a primeira string será removida do buffer e a segunda sequência será impressa na saída.

// Ligue para ob_Start () Função pela primeira vez
ob_start ();
// Imprima o valor da string
eco "Testando String Value1
";
// Limpe o buffer
ob_end_clean ();
// Ligue para ob_Start () Função Segunda vez
ob_start ();
// Imprima o valor da string
eco "Testando String Value2
";
?>

Saída:

A saída a seguir será exibida após a execução do script acima.

Exemplo 2: Uso da função ob_start () com função de retorno de chamada

Crie um arquivo php com o seguinte script para saber o uso da função ob_start () com uma função de retorno de chamada. Uma variável de string é declarada no script. A função de retorno de chamada () foi declarada para substituir a parte específica da variável da string antes de liberar a saída do buffer. A função ob_start () é chamada com o primeiro argumento que chamará a função de retorno de chamada () e retornará a sequência modificada ao buffer. Em seguida, a função ob_end_flush () usou para liberar o conteúdo do buffer no navegador.

// Declare uma variável de string
$ str = "Eu gosto de programação PHP.
";
eco "A string original: $ str ";
// Defina a função de retorno de chamada
Retorno de chamada de função ($ buffer)

// Substitua a palavra 'php' por 'python'
return (str_replace ("php", "python", $ buffer));

eco "A string substituída:";
// Ligue para a função ob_start () com função de retorno de chamada
ob_start ("retorno de chamada");
eco $ str;
// Imprimir conteúdo do buffer interno
ob_end_flush ();
?>

Saída:

A saída a seguir será exibida após a execução do script acima. De acordo com a saída, a palavra 'php' da string foi substituída pela palavra 'python'. A corda, 'Eu gosto de programação de php'convertiu na string'Eu gosto de programação python'pela função de retorno de chamada ().

Exemplo 3: Uso da função ob_start () com o valor de máscara de bits

É mencionado anteriormente que o valor padrão do bitMask da função ob_start () é php_output_handler_stdflags. Esta função tem muitos outros valores de máscara de bits.

Os usos de php_output_handler_cleanable e php_output_handler_flushable bitmasks mostraram neste exemplo.

Nenhuma função de retorno de chamada foi definida para a função ob_start () aqui e o tamanho do buffer foi definido como 0. A função ob_clean () removerá o conteúdo do buffer. Portanto, a primeira saída não será impressa no navegador.

// Declare a função com php_output_handler_cleanable sinalizador
ob_start (null, 0, php_output_handler_cleanable);
eco "linux dica
";
// Limpe o buffer
ob_clean ();
// Declare a função com php_output_handler_flushable sinalizador
ob_start (null, 0, php_output_handler_flushable);
eco "Bem -vindo ao Linuxhint";
?>

Saída:

A saída a seguir será exibida após a execução do script acima. De acordo com a saída, a segunda saída do buffer foi impressa.

Exemplo-4: Uso da função ob_start () com ob_get_contents () função

Crie um arquivo php com o seguinte script para saber o uso da função ob_start () com uma função de retorno de chamada e a função ob_get_contents (). A função convert_upper () usou como a função de retorno de chamada da função ob_start (). O objetivo desta função é converter o conteúdo do buffer em maiúsculas. Três valores de string foram enviados para o buffer e a saída dos ob_get_contents () foram armazenados em três variáveis. Quando a função ob_end_flush () será executada, o conteúdo modificado do buffer será impresso no navegador. A função var_dump () vai idiota esse conteúdo de três variáveis.

// Defina a função de retorno de chamada
função convert_upper ($ buffer)

// encobrir a string em maiúsculas
return (strtoupper ($ buffer));

// Ligue para On_Start () com função de retorno de chamada
ob_start ('convert_upper');
// a string será convertida em maiúsculas
eco "Adnan";
$ var1 = ob_get_contents ();
eco "sakib";
$ var2 = ob_get_contents ();
eco "Mostafizur";
$ var3 = ob_get_contents ();
// Imprima a corda convertida
ob_end_flush ();
eco "
";
// imprima os valores de despejo da variável
var_dump ($ var1, $ var2, $ var3);
?>

Saída:

A saída a seguir será exibida após a execução do script acima. De acordo com a saída, três valores de string foram convertidos em letras maiúsculas e o conteúdo das três variáveis ​​não se converteu na letra da mancha de mancha.

Conclusão

A função ob_start () é usada no script quando é necessário armazenar os dados no buffer para qualquer finalidade específica antes de imprimir na saída. O uso da função ob_start () com outras funções relacionadas foi explicado neste tutorial com vários exemplos para ajudar os usuários do PHP a conhecer o uso desta função.