Heim >Backend-Entwicklung >PHP-Tutorial >Beherrschen Sie mehrere gängige Methoden der Seitenstatikisierung

Beherrschen Sie mehrere gängige Methoden der Seitenstatikisierung

WBOY
WBOYOriginal
2016-08-08 09:31:13864Durchsuche

Es wird oft gesagt, dass es zwei Arten der Seitenstatisierung gibt: die eine ist pseudostatisch, also das Umschreiben der URL, und die andere ist die echte Statik. Konzentrieren wir uns auf die echte Statik.

Was ist PHP static

Ein einfaches Verständnis der PHP-Statisierung besteht darin, die von der Website generierten Seiten in Form von statischem HTML anzuzeigen. Die PHP-Statisierung wird in reine Statik und Pseudo-Statisierung unterteilt PHP generiert statische Seiten.


Warum Webseiten statisch machen
? 1. Beschleunigen Sie das Öffnen und Durchsuchen von Seiten. Statische Seiten müssen nicht mit der Datenbank verbunden werden und sind deutlich schneller als dynamische Seiten 2. Es ist förderlich für die Suchmaschinenoptimierung (SEO) und legt Wert darauf, statische Seiten einzubinden, die nicht nur schnell, sondern auch vollständig eingebunden werden 3. Reduzieren Sie die Belastung des Servers und surfen Sie im Internet, ohne die Systemdatenbank aufzurufen 4. Die Website ist sicherer und HTML-Seiten sind nicht von PHP-bezogenen Schwachstellen betroffen. Bei größeren Websites handelt es sich grundsätzlich um statische Seiten, die Angriffe reduzieren und SQL-Injection verhindern können.
Wenn ein Datenbankfehler auftritt, wird der normale Zugriff auf die Website nicht beeinträchtigt.
Obwohl das Generieren von HTML-Artikeln mühsamer und komplizierter ist, lohnen sich diese Opfer dennoch, um die Suche bequemer, schneller und sicherer zu machen.


So generieren Sie statische HTML-Seiten mit PHP

Generieren Sie statische Seiten mit PHP-Vorlagen

Es ist sehr praktisch, eine Statik von PHP-Vorlagen zu erreichen. Sie können beispielsweise PHP Smarty installieren und verwenden, um eine statische Website zu erstellen. Sie können auch Ihren eigenen Satz von Vorlagen-Parsing-Regeln schreiben, um verschiedene CMS-Vorlagen zu imitieren.


1. Verwenden Sie die Funktionen zum Lesen und Schreiben von PHP-Dateien und den OB-Caching-Mechanismus, um statische Seiten zu generieren
Die Adresse der dynamischen Detailseite eines bestimmten Produkts lautet beispielsweise: http://xxx.com?goods.php?gid=112
Hier lesen wir also den Inhalt dieser Detailseite basierend auf dieser Adresse und speichern ihn dann als statische Seite. Wenn jemand das nächste Mal die dynamische Adresse dieser Produktdetailseite besucht, können wir
Geben Sie die entsprechende generierte statische Inhaltsdatei direkt aus.


2. Verwenden Sie nosql, um Inhalte aus dem Speicher zu lesen (tatsächlich ist dieser nicht mehr statisch, sondern zwischengespeichert);

<!--?<span>php
</span><span>$gid</span>  = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span>
<span>$goods_statis_file</span> = "goods_file_".<span>$gid</span>.".html";<span>//</span><span>对应静态页文件</span>
<span>$expr</span> = 3600*24*10;<span>//</span><span>静态文件有效期,十天</span>
<span>if</span>(<span>file_exists</span>(<span>$goods_statis_file</span><span>)){
      </span><span>$file_ctime</span> =<span>filectime</span>(<span>$goods_statis_file</span>);<span>//</span><span>文件创建时间 </span>
      <span>if</span>(<span>$file_ctime</span>+<span>$expr</span>--><span>time</span>()){<span>//</span><span>如果没过期</span>
         <span>echo</span> <span>file_get_contents</span>(<span>$goods_statis_file</span>);<span>//</span><span>输出静态文件内容</span>
         <span>exit</span><span>;
      }</span><span>else</span>{<span>//</span><span>如果已过期</span>
            <span>unlink</span>(<span>$goods_statis_file</span>);<span>//</span><span>删除过期的静态页文件</span>
            <span>ob_start</span><span>();

            </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

            //include ("xxx.html");//加载对应的商品详情页模板</span>

            <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>
            <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span>
            <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>
<span>      }
}</span><span>else</span><span>{
  </span><span>ob_start</span><span>();

  </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

  //include ("xxx.html");//加载对应的商品详情页模板</span>

  <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>
  <span>file_put_contents</span>(<span>$goods_statis_file</span>,<span>$content</span>);<span>//</span><span>写入内容到对应静态文件中</span>
  <span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>
<span>
}

</span>?>
Nehmen Sie als Beispiel Memcache:

Memcached weist eine Eins-zu-eins-Entsprechung zwischen Schlüsseln und Werten auf. Die Standardschlüsselgröße darf 128 Byte nicht überschreiten, und die Standardwertgröße beträgt 1 MB. Daher kann die Größe von 1 MB den Speicherbedarf der meisten Webseiten erfüllen.

Die oben genannten Methoden zur Seitenstatik sind hoffentlich für meine Freunde hilfreich

<!--?<span>php
</span><span>$gid</span>  = <span>$_GET</span>['gid']+0;<span>//</span><span>商品id</span>
<span>$goods_statis_content</span> = "goods_content_".<span>$gid</span>;<span>//</span><span>对应键</span>
<span>$expr</span> = 3600*24*10;<span>//</span><span>有效期,十天</span>

<span>$mem</span> = <span>new</span><span> Memcache; 
</span><span>$mem</span>--->connect('memcache_host', 11211<span>);

</span><span>$mem_goods_content</span> = <span>$mem</span>->get(<span>$goods_statis_content</span><span>);



</span><span>if</span>(<span>$mem_goods_content</span><span>){
      </span><span>echo</span> <span>$mem_goods_content</span><span>;
}</span><span>else</span><span>{
  </span><span>ob_start</span><span>();

  </span><span>//</span><span>从数据库读取数据,并赋值给相关变量

  //include ("xxx.html");//加载对应的商品详情页模板</span>

  <span>$content</span> = <span>ob_get_contents</span>();<span>//</span><span>把详情页内容赋值给$content变量</span>
  <span>$mem</span>->add(<span>$goods_statis_content</span>,<span>$content</span>, <span>false</span>, <span>$expr</span><span>);
  </span><span>ob_end_flush</span>();<span>//</span><span>输出商品详情页信息</span>
<span>
}

</span>?>
Ausgezeichnete technische Artikel werden täglich aktualisiert, alle auf www.phpskill.com



PHP rein technische Lernaustauschgruppe: 323899029
Originaltext von: http://www.phpskill.com/html/show-1-4418-1.html

Das Obige hat mehrere gängige Methoden zum Statisieren von Seiten vorgestellt, darunter einige Aspekte, die hoffentlich für Freunde hilfreich sein werden, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn