Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei allgemeine Methoden zum Generieren statischer HTML-Seiten mit PHP

Zwei allgemeine Methoden zum Generieren statischer HTML-Seiten mit PHP

WBOY
WBOYOriginal
2016-07-29 09:15:261008Durchsuche

Denn jedes Mal, wenn ein Benutzer auf einen dynamischen Link klickt, wird eine Datenabfrageanfrage an den Server gesendet

Für eine Website mit potenziell Millionen von Besuchen ist dies zweifellos eine enorme Belastung für den Server

Daher ist die Konvertierung dynamischer Daten in statische HTML-Seiten die erste Wahl, um Arbeitskräfte und materielle Ressourcen einzusparen

Da ich zuvor keine entsprechende Erfahrung hatte, hielt ich diese Technologie zunächst für sehr mysteriös

Aber nachdem ich einige Beispiele gelesen hatte, stellte ich fest, dass es nicht so kompliziert ist (aber die Informationen im Internet sind nicht besonders detailliert)

Nach einem Vormittag und Nachmittag des Experimentierens habe ich die Aufgabe endlich abgeschlossen ein paar Gedanken und ein einfaches Beispiel

Ich hoffe, Prawns werden Sie nicht auslachen

Im Allgemeinen gibt es zwei Möglichkeiten, PHP zum Konvertieren und Ausgeben von HTML-Seiten zu verwenden lautet wie folgt:

Nein. Vorlagen verwenden. Derzeit gibt es viele PHP-Vorlagen, darunter das leistungsstarke Smarty und das einfache und benutzerfreundliche Smarttemplate. Jede ihrer Vorlagen verfügt über eine Funktion zum Abrufen des Ausgabeinhalts. Die Art und Weise, wie wir statische Seiten generieren, besteht darin, diese Funktion zu verwenden. Der Vorteil dieser Methode besteht darin, dass der Code klarer und besser lesbar ist.

Hier verwende ich smarty als Beispiel, um zu veranschaulichen, wie man eine statische Seite generiert:

  1. require("smarty/Smarty .class. php");
  2. $t = new Smarty;
  3. $t->assign("title","Hello World!");
  4. $ content = $ t->fetch("templates/index.htm");
  5. //Die Funktion fetch() ist hier die Funktion zum Abrufen des Ausgabeinhalts. In der Variablen $content befindet sich nun der Inhalt angezeigt werden
  6. $fp = fopen("archives/2005/05/19/0001.html", "w");
  7. fwrite($fp, $content);
  8. fclose( $fp);
  9. ?>

Die zweite Methode: Verwenden Sie die ob-Funktionsreihe. Die hier verwendeten Funktionen sind hauptsächlich ob_start(), ob_end_flush(), ob_get_content(), wobei ob_start() bedeutet, dass nach dem Öffnen des Puffers nicht alle Nicht-Datei-Header-Informationen vom PHP-Programm gesendet werden , es wird im internen Puffer gespeichert, bis Sie ob_end_flush() verwenden. Die Funktion dieser Funktion besteht darin, den Inhalt des Puffers abzurufen, was dem obigen fetch() entspricht Grund Das Gleiche.

  1. ob_start();
  2. echo „Hello World!“;
  3. $content = ob_get_contents( );//Alle von der PHP-Seite ausgegebenen Inhalte abrufen
  4. $fp = fopen("archives/2005/05/19/0001.html", "w");
  5. fwrite ($ fp, $content);
  6. fclose($fp);
  7. ?>

Die zweite Methode, die ich gewählt habe, ist die Verwendung der ob-Reihe von Funktionen

Ich war etwas verwirrt, als ich mir das zum ersten Mal ansah. Später erfuhr ich, dass ob Ausgabepufferung bedeutet, was Ausgabe-Caching bedeutet.

Wenn Sie zur Ausgabe bereit sind, werden alle Daten gespeichert in ob. Nachdem der Server PHP analysiert hat, werden alle an den Client auszugebenden HTML-Codes in ob gespeichert. Wenn wir eine statische HTML-Seite ausgeben möchten, müssen wir nur den Cache herausnehmen und in eine HTML-Seite schreiben 🎜>

Das Prinzip ist also eigentlich sehr einfach

Da ich neu in PHP bin, verstehe ich viele Funktionen noch nicht, deshalb werde ich sie hier erklären kann jedem helfen

ob_start(): Beginnen Sie mit der „Erfassung“ des Caches. Das heißt, öffnen Sie den Browser-Cache von hier aus

ob_end_flush(): Schließen Sie den Browser-Cache

ob_get_content(): Cache-Inhalt lesen

fopen("Dateipfad" , "Öffnen-Modus") Es gibt mehrere Öffnungsmodi für diese Funktion zum Öffnen einer Datei. Die folgenden sind die Hauptmodi:

„r“ Im schreibgeschützten Modus öffnen, wobei der Dateizeiger auf den Dateikopf zeigt.

„r“ Öffnen Sie im Lese- und Schreibmodus und zeigen Sie mit dem Dateizeiger auf den Dateikopf.

„w“ aktiviert den Schreibmodus, zeigt den Dateizeiger auf den Dateiheader und kürzt die Dateigröße auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.

„w“ öffnet sich im Lese-/Schreibmodus, zeigt den Dateizeiger auf den Dateikopf und kürzt die Dateigröße auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.

fwrite("Dateiname", "Inhalt schreiben") Schreiben Sie die Datei

fclose() Schließen Sie die Datei

Seit der HTML-Datei, die ich konvertieren möchte Es gibt höchstens Hunderte, daher kann der Pfad zu fopen hier nicht statisch angegeben werden. Sie können eine Pfadvariable festlegen, die die vom Benutzer gesendete ID und andere Informationen speichern kann, um die Benennung von HTML-Dateien zu erleichtern Beispiel dafür, wie ich das letzte Mal XML-Daten mit PHP gelesen habe

  1. ob_start();//Browser-Cache öffnen
  2. //Im Folgenden werden XML-Daten gelesen
  3. $parser = xml_parser_create(); //Parser-Editor erstellen
  4. xml_set_element_handler($parser, "startElement", "endElement"); //Legen Sie die entsprechende Funktion fest, wenn das Tag ausgelöst wird hier Sie sind startElement bzw. endElenment
  5. xml_set_character_data_handler($parser, "characterData");// Richten Sie beim Lesen von Daten die entsprechende Funktion ein
  6. $xml_file="1.xml";// Geben Sie die erforderliche URL für die gelesene XML-Datei an
  7. $filehandler = fopen($xml_file, "r");//Datei öffnen
  8. while ($data = fread($filehandler, 4096))
  9. {
  10. xml_parse($parser, $data, feof($filehandler));
  11. }/ / Nehmen Sie jedes Mal 4096 Bytes zur Verarbeitung heraus
  12. fclose($filehandler);
  13. xml_parser_free($parser);//Schließen Sie den Parser-Parser und geben Sie ihn frei
  14. $name=false;
  15. $position=false;
  16. function startElement($parser_instance, $element_name, $attrs) / /Funktion des Start-Tag-Ereignisses
  17. {
  18. global $name,$position;
  19. if($element_name=="NAME")
  20. {
  21. $name=true;
  22. $position=false;
  23. echo "name:";
  24. }
  25. if($ element_name =="POSITION")
  26. {$name=false;
  27. $position=true;
  28. echo "Position:";
  29. }
  30. }
  31. function CharacterData($parser_instance, $xml_data) //Funktion beim Lesen von Daten
  32. {
  33. global $ name,$ position;
  34. if($position)
  35. echo $xml_data."
    ";
  36. if($name)
  37. echo $xml_data."
    ";
  38. }
  39. function endElement($parser_instance, $element_name) //Funktion zum Beenden des Tag-Ereignisses
  40. {
  41. global $name,$position;
  42. $name=false;
  43. $position=false;
  44. }
  45. //xml-Datenlesen abgeschlossen
  46. $htmlname=$id.".html";//$id kann von Ihnen selbst definiert werden
  47. $htmlpath="archives/".$htmlname; //Pfadvariable festlegen
  48. $content = ob_get_contents();//Alle von der PHP-Seite ausgegebenen Inhalte abrufen
  49. $ fp = fopen($htmlpath, "w");
  50. fwrite($fp, $content);
  51. fclose($fp);
  52. ? >

Nachdruck: http://www.cnblogs.com/awinlei/archive/2013/03/04/2942962.html

Das Obige stellt zwei gängige Methoden zum Generieren statischer HTML-Seiten mit PHP vor, einschließlich relevanter Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, 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
Vorheriger Artikel:PHP is_writable-FunktionNächster Artikel:PHP is_writable-Funktion