1. O conceito de buffer:
O buffer é na verdade um buffer, um espaço de endereço de memória, a principal área de dados de armazenamento do usuário.
Um processo de saída de instruções no php é: content --php buffer --- tcp --- terminal
Abra o buffer no php: insira o arquivo php.ini e abra "output_buffering = on"
Exemplo: (Coloque os dados no buffer)
<? php
echo 'Obter dados do buffer;
// Obtém os dados do buffer através da seguinte função
echo ob_get_contents ();
?>
2. Como o PHP obtém o método estático da página :
O primeiro tipo: através da função file_get_contents ()
file_get_contents (): escreve uma string em um arquivo.
file_get_contents ('index.shtml', 'String data');
O segundo tipo: use o mecanismo de cache interno do PHP para obter a estática da página: output_buffering
Várias funções comumente usadas:
ob_start: abra o buffer de controle de saída (quando output_buffering no arquivo php.ini estiver fechado, você poderá usar diretamente esta função para iniciar)
ob_get_contents: retorna o conteúdo do buffer de saída
ob_clean: limpa o conteúdo do buffer de saída
ob_get_clean: obtém o conteúdo do buffer atual e exclui o buffer de saída atual
3. Etapas para alcançar um caso puramente estático:
Uma das principais etapas práticas é obter dados do banco de dados - e depois preencher os dados obtidos no modelo (página dinâmica php) - e depois converter a página dinâmica em uma página estática para gerar uma estática pura. Arquivo
Estudo de caso:
<? php
dataarray: dados encontrados no banco de dados (na forma de uma matriz)
ob_start (); // Iniciar buffer
// Preencha os dados obtidos do banco de dados no arquivo de modelo e, em seguida, introduza o arquivo de modelo na página atual para executar
require_once ('/ index.php');
if (file_put_contents ('index.shtml', ob_get_clean ()))
{
ecoar 'sucesso';
}outro
eco 'erro';
?>
O programa acima irá gerar uma página puramente estática: index.shtml
4. Como acionar o sistema para gerar uma página puramente estática:
Três maneiras:
Primeiro: adicione tempo de cache à página
if (is_file ("./ index.shtml") && (time () -filemtime ("./ index.shtml")) <500) {require_once ("./ index.shtml") // menos de 5 minutos Carregue o arquivo estático gerado} else {// Peça a um arquivo de modelo dinâmico para gerar novamente um arquivo estático}
Segundo: modo de disparo manual
Terceiro: programa de verificação regular crontab (programa de atualização programada no sistema linux)
programa de verificação regular crontab (uma ferramenta de verificação no linux):
Exemplo: * / 5 **** php /data/static/index.php
* / 5 **** php: Use asteriscos para representar cinco fusos horários: a primeira estrela representa minutos e as estrelas subsequentes representam hora, dia, mês e semana em sequência. Obviamente, agora significa que a cada 5 minutos é executado no caminho a seguir. Programa PHP.
Como definir o comando acima no Linux?
Primeiro mude para o root e digite crontab -e para editar e escrever * / 5 **** php /data/static/index.php
Em seguida, use o comando tail -f /var/log/cron.log para visualizar um log da execução do programa (ver o processo de execução)
5. Realização de caso dinâmico parcial:
Use a tecnologia ajax para obter:
$ .ajax ({
'url': 'Caminho dinâmico',
'type': 'get / post', // método de transmissão
'dataType': 'json', // Tipo de dados retornado
'erro': function () {},
'sucesso': função (resultado)
{
html = '';
// Use cada função para percorrer
$ .each (result.data, função (chave, valor)
{
html + = .......... Aqui, por exemplo, faça um loop em li
// Em seguida, encontre ou defina o valor do ID a ser colocado em uma determinada área
$ ("# a"). html (html);
});
}
})
6. Processamento de PHP pseudo-estático:
Probabilidade: converta URLs dinâmicos em URLs estáticos (a essência ainda é um endereço dinâmico)
Função: bonita, propícia à coleta de dados, etc.
Existem dois métodos de processamento:
O primeiro: jogo por regular
Primeiro imprima a variável global $ _SERVER no php e você verá um PATH_INFO, que é o endereço por trás do nome do domínio e, em seguida, use regular para corresponder
preg_math ("Regras Regulares", $ _SERVER ['PATH_INFO']);