Heim > php教程 > PHP开发 > Hauptteil

Apropos PHP generiert eine statische Seitenanalysevorlage + Cache + Schreibdateien

黄舟
Freigeben: 2016-12-14 13:24:34
Original
1265 Leute haben es durchsucht

1. Einleitung
In Bezug auf die Geschwindigkeit sind statische Seiten viel schneller als dynamische Seiten wie PHP, aber aufgrund der geringen Flexibilität statischer Seiten, wenn Sie keine Datenbank verwenden Andere Geräte Wenn Sie relevante Informationen speichern, ist die Gesamtverwaltung umständlicher, z. B. Änderungen und Bearbeitungen, z. B. Leseberechtigungsbeschränkungen usw. Bei einigen Dateien, die wir häufig verwenden, z. B. dem entwickelten Pressemitteilungssystem, ist dies jedoch der Fall Ich möchte nicht, dass viele Benutzer die Ergebnisse in der Datenbank anzeigen, was zum einen Serverressourcen verbraucht und zum anderen viel wertvolle Antwortzeit des Betrachters in Anspruch nimmt Derzeit verwenden viele Websites diese Technologie. Sie werden alle vom Verwaltungshintergrund gesteuert oder generieren HTML zur direkten Anzeige oder verwenden XML zur Steuerung der Anzeige mit XSLT. Diese Technologien sind nicht schwierig. Hier werde ich kurz auf die Methode zum Generieren von HTML eingehen
2. Vorkenntnisse
Template-Technologie:
[PHP] Eine ausführliche Einführung in die Template-Engine Smarty--2005-12-31
[PHP] Apropos Konfiguration und Verwendung der Smarty-Technologie – 04.01.2006
Caching-Technologie:
Einige Informationen, z. B. Informationen, die häufig unverändert bleiben, sich aber dennoch ändern können, werden zur Beschleunigung im Cache abgelegt Unter dem sogenannten Cache versteht man im Allgemeinen einige auf der Serverseite gespeicherte Informationen. Beim Speichern des Caches können wir dies festlegen Wenn es beispielsweise alle 5 Minuten aktualisiert werden muss, können wir die letzte Aktualisierungszeit aufzeichnen und mit der aktuellen Zeit vergleichen. Wenn sie größer als 5 Minuten ist, lesen Sie die Datenbank und aktualisieren Sie sie, andernfalls lesen Sie die zwischengespeicherte Zeit Daten direkt. Natürlich muss der Cache vom Client-Benutzer aktiviert werden und muss nur einmal aktiviert werden:
ob_start() Funktion: Öffnen Sie den Ausgabepuffer
Hinweis: Wenn der Puffer aktiviert ist, werden alle Nicht-Datei-Header-Informationen vom PHP-Programm nicht gesendet, sondern im internen Puffer gespeichert. Um den Inhalt des Puffers auszugeben, können Sie ob_end_flush() oder Flush() verwenden, um den Inhalt des Puffers auszugeben.
Flush: Aktualisieren Sie den Inhalt des Puffers und geben Sie ihn aus.
Funktionsformat: Flush()
Beschreibung: Diese Funktion wird häufig verwendet und ist sehr effizient.
ob_get_contents: Gibt den Inhalt des internen Puffers zurück.
Funktionsformat: string ob_get_contents(void)
Beschreibung: Diese Funktion gibt den Inhalt des aktuellen Puffers zurück. Wenn der Ausgabepuffer nicht aktiviert ist, wird FALSE zurückgegeben.
ob_get_length: Gibt die Länge des zurück Interner Puffer.
Funktionsformat: int ob_get_length(void)
Beschreibung: Diese Funktion gibt die Länge im aktuellen Puffer wie ob_get_contents zurück; wenn der Ausgabepuffer nicht aktiviert ist, gibt sie FALSE zurück:
ob_end_clean: Löschen Sie den internen Pufferbereich und schließen Sie den internen Puffer
Funktionsformat: void ob_end_clean(void)
Beschreibung: Diese Funktion gibt den Inhalt des internen Puffers nicht aus, sondern löscht ihn
ob_end_flush: Senden Sie den Inhalt des internen Puffers an den Browser und schließen Sie den Ausgabepuffer
Funktionsformat: void ob_end_flush(void)
Beschreibung: Diese Funktion sendet den Inhalt des Ausgabepuffers (falls vorhanden)
ob_implicit_flush: Absolute Aktualisierung ein- oder ausschalten
Funktionsformat: void ob_implicit_flush ([int flag])
Beschreibung: Standardmäßig wird der Puffer geschlossen. Nach dem Einschalten der absoluten Ausgabe wird jede Skriptausgabe direkt an den Browser gesendet, und es ist nicht erforderlich, Flush( aufzurufen. )
Datei schreiben:
int fwrite (Ressourcenhandle, Zeichenfolge string [, int-Länge])
fwrite() schreibt den Inhalt der Zeichenfolge in das Dateizeigerhandle. Wenn die Länge angegeben ist, stoppt der Schreibvorgang, wenn Längenbytes geschrieben wurden oder wenn die Zeichenfolge geschrieben wurde, je nachdem, was zuerst eintritt.
fwrite() gibt die Anzahl der geschriebenen Zeichen zurück oder FALSE, wenn ein Fehler auftritt.
Verwandte Referenz offizielle Website: Dateireferenz
3. Lösung
Idee: ob_start-Puffer aktivieren, ob_get_contents abrufen, wenn die Daten übertragen wurden, dann eine statische Seite generieren, ob_end_clean den Puffer löschen.ok, das war’s Schauen wir uns ein Beispiel an (Kombination aus PHP+MySQL):
Datenbank erstellen:

Kopieren Sie den Code wie folgt:

Erstellen Sie TABLE `bihtml` (
`id` int(11 ) NOT NULL auto_increment,
`szdtitle` varchar(16) NOT NULL,
`szdcontent` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE

Get die aktuelle ID und Importvorlage:

Kopieren Sie den Code wie folgt:
ob_start();
$id=_POST['id']
if(!isset($id)&is_integer($id))
{
@$db=new mysqli('localhost','root','admin','bihtml');
$result=$db->fetch_one_array("select * from szd_bi where id='$id ' ");
if(!emptyempty($result))
{
$tmp->assign(array(
"Szdtitle",htmlspecialchars($result['titles']),
"Szdcontent",$result['titles']));
}
$tpl->display('default_1.tpl');
$this_my_f= ob_get_contents(); this Key
ob_end_clean();
$filename = "$id.html";
if(tohtmlfile_cjjer($filename,$this_my_f))
echo "Erfolgreich generiert $filename"; else
echo „Erkennung generieren“;
}
}

//Schreiben Sie den Prozess der Dateigenerierung als Funktion

function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)
{
if (is_file ($file_cjjer_name)){
@unlink ($file_cjjer_name);
}
$cjjer_handle = fopen ($file_cjjer_name,"w"); ( $file_cjjer_name)){
return false; ; //Close pointer
return $file_cjjer_name;

IV Hinweise
1: Es wird generell empfohlen, dass Administratoren statische Seiten generieren, wenn sie Daten hinzufügen Rankings und Pfad.
2: PHP enthält hauptsächlich ob_starts() und ob_get_contents, die beim Generieren statischer Seiten sehr nützlich sind. Natürlich können Sie auch erwägen, die Variablen direkt in der Vorlage zu ersetzen 3: Die Hauptvorlage, die Sie verwenden können, ist smarty oder phplib.

Ich hoffe, dass der obige Artikelinhalt allen weiterhelfen kann. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website .php.cn)!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!