Maison >développement back-end >tutoriel php >Apprenez à utiliser la fonction ob pour générer des fichiers HTML statiques

Apprenez à utiliser la fonction ob pour générer des fichiers HTML statiques

巴扎黑
巴扎黑original
2017-07-23 10:35:161628parcourir

Comment utiliser la fonction ob pour générer des fichiers HTML statiques

1. Introduction à la fonction ob

1.1 ob_start - Activer le tampon de contrôle de sortie

<.>bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] ) Cette fonction ouvrira le tampon de sortie. Lorsque la mise en mémoire tampon de sortie est activée, le script n'affichera pas de contenu (sauf les en-têtes http), mais le contenu à afficher est stocké dans un tampon interne.
Référence pour plus de détails :

1.2, ob_get_contents - Renvoie le contenu de la sortie buffer

string ob_get_contents (void)Obtenez simplement la zone tampon de sortie, mais ne l'efface pas.
Pour plus de détails, veuillez vous référer à :

1.3, ob_end_flush — vider (envoyer) le contenu du tampon de sortie et fermer le tampon

bool ob_end_flush ( void )Cette fonction enverra le contenu du tampon de niveau supérieur (s'il y a du contenu à l'intérieur) et fermera le tampon. Si vous souhaitez poursuivre le traitement du contenu du tampon, vous devez appeler ob_get_contents() avant ob_end_flush(), car le contenu du tampon est supprimé après l'appel de ob_end_flush().
Pour plus de détails, veuillez vous référer à :

1.4, ob_flush - vider (envoyer) le contenu du tampon de sortie

void ob_flush ( void )Cette fonction enverra le contenu de le tampon (s'il y a du contenu à l'intérieur des mots). Si vous souhaitez poursuivre le traitement du contenu du tampon, vous devez appeler ob_get_contents() avant ob_flush(), car le contenu du tampon sera supprimé après l'appel de ob_flush().
Cette fonction ne détruira pas le tampon de sortie, mais des fonctions comme ob_end_flush() détruiront le tampon.
Pour plus de détails, veuillez vous référer à :

1.5, ob_get_clean - Récupère le contenu du tampon actuel et supprime le tampon de sortie actuel

chaîne ob_get_clean ( void )Récupère le contenu du tampon actuel et supprime le tampon de sortie actuel.
ob_get_clean() exécute essentiellement ob_get_contents() et ob_end_clean() ensemble.
Pour plus de détails, veuillez vous référer à :
1.6, ob_get_flush - Vider (envoyer) le contenu du tampon, renvoyer le contenu sous forme de chaîne et fermer la sortie tampon

chaîne ob_get_flush ( void )ob_get_flush() vide (envoie) le contenu du tampon, renvoie le contenu sous forme de chaîne et ferme le tampon de sortie.
Remarque : Cette fonction est similaire à ob_end_flush(), sauf que cette fonction renvoie également le contenu du tampon sous forme de chaîne.
Pour plus de détails, veuillez vous référer à :

2. Comment utiliser la fonction ob() pour créer une page statique de html

2.1. Fichier html de sortie simple

36b143749db13451f84382a3ccb12490
Sortie bonjour à index.html

Trouver index.html et afficher les paramètres normalement Contenu

2.2 Obtenir les informations de la base de données et générer le fichier HTML

2c436fe572224599aa914bc0b8e42e07query($sql);
$arr = array();
while($re = $result->fetch(PDO::FETCH_ASSOC)){
$arr[] = $re;
}
//Boucle le contenu de sortie dans le fichier html
ob_start(); //Ouvrir le tampon
?>
e025b1812faff0fa81d89b1f12fcaa8b
8b05045a5be5764f313ed5b9168a17e6
6ded17fe4bfcbd98efb99db7c7c8ec7b
93f0f5c25f18dab9d176bd4f6de5d30e
1fc2df4564f5324148703df3b6ed50c1
b2386ffb911b14667cb8f0f91ea547a7Contenu HTML de sortie en boucle6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
f5d188ed2c074f8b944552db028f98a1
ae20bdd317918ca68efdc799512a9b39
a34de1251f0d9fe1e645927f19a896e8 🎜>b6c5a531a458a2e790c1fd6421739d1cidb90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1cnameb90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1cpwdb90dd5946f0946207856a8a37f441edf
fd273fcf5bcad3dfdad3c41bd81ad3e5
de7e5224d5886399476050cd39e4cf03
d0c001435a40f2d88397a6e322744fea $value) {
echo "a34de1251f0d9fe1e645927f19a896e8"
echo "< ; td>{$value['id']}b90dd5946f0946207856a8a37f441edf";
echo "b6c5a531a458a2e790c1fd6421739d1c{$value['name']}b90dd5946f0946207856a8a37f441edf";
echo "< ; td>{$value['pwd']}b90dd5946f0946207856a8a37f441edf";
echo "fd273fcf5bcad3dfdad3c41bd81ad3e5";
}
?>
ca745a59da05f784b8811374296574e1
f16b1740fad44fb09bfe928bcc527e08
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
216674a8bd9b6da5f184bac253a2dce4
Sortir le résultat dans index2.html

Il existe de nombreuses fonctions de contrôle de sortie. Je vais d'abord présenter ces types

2.3 Optimiser la méthode de lecture pour garantir que le fichier spécifié est lu correctement

Déterminez d'abord si le fichier existe, et s'il existe, déterminez l'heure actuelle - La différence de temps entre l'heure de création est utilisée pour déterminer si le fichier actuel est valide.
<?php
	$fileName = &#39;index2.html&#39;;
	$re = file_exists($fileName);//判断文件是否存在
	$dValue = 0;if($re){
		$fileTime = filectime($fileName);//时间戳
		$dValue = time() -  $fileTime;//获取创建时间,文件缓存一般存在有效期}if(file_exists($fileName) && $dValue < 3600){
		$content = file_get_contents($fileName);
		echo $content;
		die;}else{if($re){
			unlink($fileName);//过去先删除,}
		require_once &#39;coon.php&#39;;
		$sql = "select * from name order by id;";
		$result = $link->query($sql);
		$arr = array();while($re = $result->fetch(PDO::FETCH_ASSOC)){ 
			$arr[] = $re;} 
		//循环输出内容到html文件
		ob_start(); //打开缓冲区  ?><!-- 下面是输出的内容 --><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>循环输出的html内容</title></head>
<body>
	<table>
		<thead>
			<tr>
				<td>id</td><td>name</td>
				<td>pwd</td></tr>
		</thead><tbody><?php
				foreach ($arr as $key => $value) {
					echo "<tr>";

					echo "<td>{$value[&#39;id&#39;]}</td>";
					echo "<td>{$value[&#39;name&#39;]}</td>";
					echo "<td>{$value[&#39;pwd&#39;]}</td>";

					echo "</tr>";}?></tbody>
	</table></body>
</html><?php

$content = ob_get_contents();//得到当前缓冲区的内容ob_end_clean();//删除当前输出缓file_put_contents(&#39;index2.html&#39;,$content);//写入文件}?>

3. Résumé

1. Il n'est pas nécessaire de l'exécuter sur le serveur. Lors de l'accès, le serveur renvoie simplement le fichier au navigateur et n'effectue aucune opération. est petit. L'accès est rapide.

2. Sécurité, aucun langage de développement de site Web dynamique n'est absolument sûr et les pages Web statiques n'ont aucune faille dans le programme, à l'exception du piratage du serveur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn