Maison  >  Article  >  développement back-end  >  Comment rendre les pages HTML statiques avec PHP

Comment rendre les pages HTML statiques avec PHP

墨辰丷
墨辰丷original
2018-06-06 14:02:231491parcourir

Cet article présente principalement la méthode de statique des pages HTML en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

De manière générale, l'optimisation se fera sous les aspects suivants

  • Statisation des pages dynamiques

  • Optimiser la base de données

  • Utiliser l'équilibrage de charge

  • Utiliser le cache

  • Utiliser CDN pour accélérer

De nombreux sites Web doivent désormais être traités de manière statique lors de leur création. Pourquoi les sites Web doivent-ils être traités de manière statique ? Nous savons tous qu'un site Web purement statique est un site Web où toutes les pages Web sont des pages HTML indépendantes. Lorsque nous visitons, nous pouvons lire les fichiers directement sans traitement des données, et c'est très utile pour la recherche. est également très respectueux du moteur.
Comment un site Web purement statique est-il implémenté sur le site ?
La technologie de production statique pure nécessite d'abord de résumer les pages du site Web, de les diviser en plusieurs styles, puis de transformer ces pages en modèles. Lors de la génération, vous devez d'abord lire les fichiers sources, puis générer. Les fichiers de page indépendants se terminant par .html, donc les sites Web purement statiques nécessitent plus d'espace, mais en fait, l'espace requis n'est pas beaucoup plus grand, en particulier pour les sites Web de petites et moyennes entreprises. Techniquement, les grands sites Web souhaitent obtenir une statique pure. de l'ensemble du site, et le temps de génération est trop long. Cependant, les sites Web de petite et moyenne taille utilisent encore des comparaisons purement statiques, ce qui présente de nombreux avantages.

Et comment les sites Web dynamiques sont-ils traités de manière statique ? La staticisation de page fait référence à la transformation de pages dynamiques en pages statiques html/htm. Les pages dynamiques sont généralement écrites en asp, php, jsp, .net et autres langages de programmation, très simples à gérer. Cependant, lors de l'accès à une page Web, le programme doit toujours la traiter en premier, la vitesse d'accès est donc relativement lente. Les pages statiques sont rapides d’accès, mais difficiles à gérer. Alors la page statique de la page dynamique peut réunir les avantages des deux pages.

Quels avantages le traitement statique apporte-t-il au site Web ?

  • Les pages statiques sont plus susceptibles d'être indexées par les moteurs de recherche que les pages dynamiques.

  • L'accès aux pages statiques ne nécessite pas de traitement de programme, la vitesse d'exécution peut donc être améliorée.

  • Réduisez la charge sur le serveur.

  • Les pages HTML ne sont pas affectées par les vulnérabilités liées à ASP.

Les sites Web traités de manière statique sont plus sécurisés que les sites Web sans traitement statique, car les sites Web statiques ne sont pas le premier choix des pirates informatiques, car les pirates ne le savent pas. Dans le cas de votre backend système, il est difficile pour les pirates d’attaquer à partir des pages statiques du frontend. Dans le même temps, il présente également un certain degré de stabilité. Par exemple, s'il y a un problème avec la base de données ou le programme du site Web, il n'interférera pas avec la page traitée statiquement et la page ne pourra pas être ouverte en raison de cela. à l’impact du programme ou des données.

Les programmes spider des moteurs de recherche préfèrent ces URL, ce qui peut également réduire la charge de travail des programmes spider. Bien que certaines personnes pensent que les moteurs de recherche sont désormais pleinement capables d'explorer et d'identifier les URL dynamiques, cela est toujours recommandé ici. peut le rendre statique, essayez d'en faire une URL statique.

Maintenant, nous allons parler principalement du concept de statique de page. J'espère que cela vous sera utile !
Qu'est-ce que la staticisation HTML :

On dit souvent que la staticisation de page est divisée en deux types, l'un est Pseudo-statique , c'est-à-dire réécriture d'URL, l'une est vraie statique .
Dans le développement de sites Web PHP, pour les besoins de promotion et de référencement de sites Web, le site Web doit être statique dans son ensemble ou partiellement. Il existe de nombreuses façons de générer des pages HTML statiques en PHP, telles que l'utilisation de modèles PHP, la mise en cache, etc. réaliser la statique de la page.
Une compréhension simple du PHP statique consiste à faire en sorte que les pages générées par le site Web soient affichées devant les visiteurs sous forme de HTML statique PHP statique et divisé en statique pur et pseudo. -static. La différence réside dans le mécanisme de traitement de PHP générant des pages statiques.
PHP pseudo-statique : Utilisez Apache mod_rewrite pour implémenter la réécriture d'URL.

Avantages du HTML statique :

1. Réduisez la charge sur le serveur et naviguez sur le Web sans appeler la base de données système.
2. Il est propice à l'optimisation des moteurs de recherche (SEO). Baidu et Google donneront la priorité à l'inclusion de pages statiques, qui seront non seulement incluses rapidement mais incluront également toutes les pages
; 3. Accélérez la vitesse d'ouverture de la page, les pages statiques n'ont pas besoin de se connecter à la base de données, la vitesse d'ouverture est considérablement améliorée par rapport aux pages dynamiques
4. Le site Web est plus sécurisé, les pages HTML ne seront pas affectées par les vulnérabilités liées aux programmes PHP ; jetez un œil aux sites Web plus grands. Fondamentalement, ce sont toutes des pages statiques, et elles peuvent réduire les attaques et empêcher l'injection SQL. Lorsqu'une erreur de base de données se produit, l'accès normal au site Web ne sera pas affecté.
5. Lorsqu'une erreur de base de données se produit, cela n'affecte pas l'accès normal au site Web.
La chose la plus importante est que cela peut augmenter la vitesse d'accès et réduire la charge sur le serveur. Lorsque la quantité de données est de plusieurs dizaines de milliers, centaines de milliers ou plus, vous saurez laquelle est la plus rapide. facile à trouver par les moteurs de recherche. Bien que l'opération de génération d'articles HTML soit plus fastidieuse et que les procédures soient plus compliquées, afin de rendre la recherche plus pratique, plus rapide et plus sûre, ces sacrifices en valent toujours la peine.

Explication des stratégies et exemples pour obtenir du HTML statique :
Méthode de base
Utilisation de la fonction file_put_contents()
Le mécanisme de mise en cache intégré de PHP réalise la statique des pages : tampon de sortie.

Méthode 1 : utiliser des modèles PHP pour générer des pages statiques

Il est très pratique de réaliser la statique des modèles PHP, comme l'installation et l'utilisation de PHP Smarty pour créer un site Web statique.
Lorsque vous utilisez Smarty, la page peut également être rendue statique. Parlons brièvement de la méthode de lecture dynamique habituelle lors de l'utilisation de Smarty.
Généralement divisé en ces étapes : 1. Passez un paramètre (ID) via l'URL
2. Ensuite, interrogez la base de données en fonction de cet ID ;
3. nécessaire après avoir obtenu le contenu des données ;
4. attribuer les données à afficher ;
5.
Le processus de staticisation Smarty ne nécessite que l'ajout de deux étapes au processus ci-dessus.
Premier : utilisez ob_start() avant 1 pour ouvrir le tampon.
Deuxième : utilisez ob_get_contents() après 5 pour obtenir le contenu non sorti en mémoire, puis utilisez fwrite() pour écrire le contenu dans le fichier html cible.

Selon la description ci-dessus, ce processus est mis en œuvre à la réception du site Web, tandis que la gestion du contenu (ajout, modification, suppression) est généralement effectuée en arrière-plan afin d'utiliser efficacement le processus ci-dessus. , vous pouvez utiliser une petite astuce, à savoir Header(). Le processus spécifique est le suivant : après avoir ajouté et modifié le programme, utilisez Header() pour passer au premier plan pour la lecture, afin que la page puisse être HTMLisée, puis revenez au côté gestion en arrière-plan après avoir généré du HTML. les processus sont invisibles.

Méthode 2 : Utiliser les fonctions de lecture et d'écriture de fichiers PHP pour générer des pages statiques

<? 
$out1 = "<html><head><title>PHP网站静态化教程</title></head><body>欢迎访问PHP网站开发教程网www.leapsoul.cn,本文主要介绍PHP网站页面静态化的方法</body></html>"; 
$fp = fopen("leapsoulcn.html","w"); 
if(!$fp) 
{ 
echo "System Error"; 
exit(); 
} 
else 
{ 
fwrite($fp,$out1); 
fclose($fp); 
echo "Success"; 
} 
?>

Méthode 3 : Utiliser la fonction PHP Output Control/le mécanisme de cache ob génère des pages statiquesLa fonction Output Control utilise et contrôle le cache pour générer des pages HTML statiques, et utilise également les fonctions de lecture et d'écriture de fichiers PHP.
Par exemple, l'adresse de la page de détails dynamique d'un produit est : http://xxx.com?goods.php?gid=112
Nous lisons donc ici le contenu de la page de détails en fonction de cette adresse, et puis enregistrez-le en tant que page statique. La prochaine fois que quelqu'un visitera l'adresse dynamique de cette page de détails du produit, nous pourrons directement afficher le fichier de contenu statique correspondant qui a été généré.
PHP génère un exemple de code de page statique 1

<? 
ob_start(); 
echo "<html>". 
"<head>". 
"<title>PHP网站静态化教程</title>". 
"</head>". 
"<body>欢迎访问脚本之家,本文主要介绍PHP网站页面静态化的方法</body>". 
"</html>"; 
$out1 = ob_get_contents(); 
ob_end_clean(); 
$fp = fopen("leapsoulcn.html","w"); 
if(!$fp) 
{ 
echo "System Error"; 
exit(); 
} 
else 
{ 
fwrite($fp,$out1); 
fclose($fp); 
echo "Success"; 
} 
?>

PHP génère un exemple de code de page statique 2

<?php 
$gid = $_GET[&#39;gid&#39;]+0;//商品id 
$goods_statis_file = "goods_file_".$gid.".html";//对应静态页文件 
$expr = 3600*24*10;//静态文件有效期,十天 
if(file_exists($goods_statis_file)){ 
 $file_ctime =filectime($goods_statis_file);//文件创建时间 
 if($file_ctime+$expr-->time()){//如果没过期 
  echo file_get_contents($goods_statis_file);//输出静态文件内容 
  exit; 
 }else{//如果已过期 
  unlink($goods_statis_file);//删除过期的静态页文件 
  ob_start(); 
 
  //从数据库读取数据,并赋值给相关变量 
 
  //include ("xxx.html");//加载对应的商品详情页模板 
 
  $content = ob_get_contents();//把详情页内容赋值给$content变量 
  file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 
  ob_end_flush();//输出商品详情页信息 
 } 
}else{ 
 ob_start(); 
 
 //从数据库读取数据,并赋值给相关变量 
 
 //include ("xxx.html");//加载对应的商品详情页模板 
 
 $content = ob_get_contents();//把详情页内容赋值给$content变量 
 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 
 ob_end_flush();//输出商品详情页信息 
 
} 
 
?>


Nous savons que lorsque vous utilisez PHP pour le développement de sites Web, les résultats d'exécution sont généralement affichés directement dans le navigateur. Afin d'utiliser PHP pour générer des pages statiques, vous devez utiliser la fonction de contrôle de sortie pour contrôler la zone de cache afin d'obtenir le contenu. de la zone de cache, puis affichez-le dans le fichier de page HTML statique pour obtenir un site Web statique.

PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML内容(你也可以通过include将HTML内容以文件形式包含进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。
获得输出的缓存内容以生成静态HTML页面的过程需要使用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。
 
知识点:
1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。
2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。
3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False
 方法4:使用nosql从内存中读取内容(其实这个已经不算静态化了而是缓存);以memcache为例:

<?php 
$gid = $_GET[&#39;gid&#39;]+0;//商品id 
$goods_statis_content = "goods_content_".$gid;//对应键 
$expr = 3600*24*10;//有效期,十天 
$mem = new Memcache; 
$mem--->connect(&#39;memcache_host&#39;, 11211); 
$mem_goods_content = $mem->get($goods_statis_content);  
if($mem_goods_content){ 
 echo $mem_goods_content; 
}else{ 
 ob_start(); 
 
 //从数据库读取数据,并赋值给相关变量 
 
 //include ("xxx.html");//加载对应的商品详情页模板 
 
 $content = ob_get_contents();//把详情页内容赋值给$content变量 
 $mem->add($goods_statis_content,$content, false, $expr); 
 ob_end_flush();//输出商品详情页信息 
 
} 
 
?>

 memcached是键值一一对应,key默认最大不能超过128个字节,value默认大小是1M,因此1M大小满足大多数网页大小的存储。

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP闭包函数的含义

PHP中socket如何发送HTTP请求

PHP如何安装pear扩展及解压技巧

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