suchen
HeimBackend-EntwicklungPHP-TutorialSo generieren Sie statische Webseiten mit PHP

Ich habe viele Freunde gesehen, die an verschiedenen Stellen gefragt haben, wie man ein statisches Artikelsystem in PHP generiert. Ich habe ein solches System schon einmal erstellt, daher möchte ich Ihnen einige Meinungen mitteilen. In der PHP-Schulung von Band of Brothers werden zunächst einige grundlegende Konzepte besprochen.

1. PHP-Skripte und dynamische Seiten.

PHP-Skript ist ein serverseitiges Skriptprogramm, das durch Einbettung und andere Methoden mit HTML-Dateien gemischt werden kann. Es kann auch Benutzeranforderungen in Form von Klassen, Funktionskapselungen usw. in Form von Vorlagen verarbeiten . Auf die eine oder andere Weise sind die Grundlagen dies. Der Client stellt eine Anfrage für eine bestimmte Seite. -----> Der WEB-Server führt das entsprechende Skript zur Verarbeitung ein. -----> Das Skript wird in den angegebenen PHP-Parser geladen vom Server Das Skript wird vom Browser analysiert, um ein HTML-Sprachformular zu bilden ----> Die analysierte HTML-Anweisung wird in Form eines Pakets an den Browser zurückgesendet. Daraus ist nicht schwer zu erkennen, dass PHP nach dem Senden der Seite an den Browser nicht mehr existiert und in HTML-Anweisungen konvertiert und analysiert wurde. Bei der Client-Anfrage handelt es sich tatsächlich um eine dynamische Datei. PHP analysiert sie in die entsprechende Seite und sendet sie dann an den Browser zurück. Diese Art der Seitenbehandlung wird als „dynamische Seiten“ bezeichnet.

Zweite, statische Seite.

Statische Seiten beziehen sich auf Seiten, die auf der Serverseite vorhanden sind und nur HTML und JS, CSS und andere clientseitige Skripte enthalten. Die Art und Weise, wie es gehandhabt wird, ist. Der Client stellt eine Anfrage für eine bestimmte Seite----> Der WEB-Server bestätigt und lädt eine bestimmte Seite----> Der WEB-Server gibt die Seite in Form eines Pakets zurück. Aus diesem Prozess können wir die dynamischen Seiten vergleichen und sehen. Dynamische Seiten müssen vom PHP-Parser des WEB-Servers analysiert werden und müssen normalerweise eine Verbindung zur Datenbank herstellen und Datenbankzugriffsvorgänge ausführen, bevor sie ein HTML-Sprachinformationspaket bilden können, während statische Seiten nicht analysiert oder verbunden werden müssen Die Datenbank kann direkt gesendet werden, wodurch der Serverdruck erheblich verringert, die Serverlastkapazität verbessert und die Seitenöffnungsgeschwindigkeit sowie die allgemeine Website-Öffnungsgeschwindigkeit erheblich verbessert werden können. Der Nachteil besteht jedoch darin, dass die Anfrage nicht dynamisch verarbeitet werden kann und die Datei tatsächlich auf dem Server vorhanden sein muss.

3. Vorlagen und Vorlagenanalyse.

Die Vorlage wurde noch nicht mit Inhalts-HTML-Dateien gefüllt. Zum Beispiel:

temp.html



PHP-Verarbeitung:

templetest.php

> $title = "http:/ /siyizhu.com test template";

$file = "TwoMax Inter test template,
Autor: Matrix@Two_Max";

$fp = fopen ("temp.html", "r");

$content = fread ($fp,filesize ("temp.html"));

$content = str_replace ("{ file }",$file,$ content);

$content = str_replace ("{ title }",$title,$content);

 ?> 🎜> Bei der Vorlagen-Parsing-Verarbeitung handelt es sich um den Prozess des Füllens (Inhalts) der nach der PHP-Skript-Analyse und -Verarbeitung erhaltenen Ergebnisse in die Vorlage. Normalerweise mit Hilfe von Template-Klassen. Derzeit gehören zu den beliebtesten Vorlagen-Parsing-Klassen phplib, smarty, fastsmarty und so weiter. Das Prinzip der Template-Parsing-Verarbeitung ist normalerweise das Ersetzen. Es gibt auch einige Programmierer, die es gewohnt sind, Beurteilungen, Schleifen und andere Verarbeitungen in Vorlagendateien einzufügen und diese mit Parsing-Klassen zu verarbeiten. Die typische Anwendung ist das Blockkonzept, bei dem es sich einfach um eine Schleifenverarbeitung handelt. Das PHP-Skript gibt die Anzahl der Schleifen, die Art der Schleife usw. an, und dann implementiert die Template-Parsing-Klasse diese Vorgänge.

Okay, nachdem wir die Vor- und Nachteile von statischen und dynamischen Seiten verglichen haben, sprechen wir nun darüber, wie man PHP zum Generieren statischer Dateien verwendet.

Das Generieren statischer Seiten durch PHP bezieht sich nicht auf das dynamische Parsen und Ausgeben von HTML-Seiten durch PHP, sondern auf die Verwendung von PHP zum Erstellen von HTML-Seiten. Da HTML nicht beschreibbar ist, muss das von uns erstellte HTML gleichzeitig gelöscht und neu generiert werden, wenn es geändert wird. (Natürlich können Sie auch reguläre Regeln verwenden, um es zu ändern, aber ich persönlich denke, dass es schneller ist als das Löschen und Neugenerieren, was den Gewinn nicht wert ist.)

Zurück zum Geschäft. PHP-Fans, die PHP-Dateioperationsfunktionen verwendet haben, wissen, dass es in PHP eine Dateioperationsfunktion fopen gibt, die eine Datei öffnet. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen. Dies ist die theoretische Grundlage, auf der PHP zum Erstellen von HTML-Dateien verwendet werden kann. Solange der Ordner, in dem HTML-Dateien gespeichert werden, über Schreibberechtigungen verfügt (z. B. Berechtigungsdefinition 0777), kann die Datei erstellt werden. (Für UNIX-Systeme müssen Win-Systeme nicht berücksichtigt werden.) Nehmen wir das obige Beispiel als Beispiel, wenn wir den letzten Satz ändern und angeben, dass eine statische Datei mit dem Namen test.html im Testverzeichnis generiert werden soll:

 
 $title = "http://siyizhu.com test template";

 $file = "TwoMax Inter test template,
Autor: Matrix@Two_Max" ;

$fp = fopen ("temp.html", "r");

$content = fread ($fp,filesize ("temp.html"));
$content = str_replace ("{file}",$file,$content);

$content = str_replace ("{title}",$title,$content);

  // echo $content

$filename = "test/test.html";
 $handle = fopen ($filename,"w"); //Öffnen Sie den Dateizeiger und erstellen Sie die Datei

 /*

  Überprüfen Sie, ob die Datei erstellt und beschreibbar ist

;

 }

 if (!fwrite ($handle,$content)){ //Informationen in die Datei schreiben

die ("Datei generieren" .$filename. „Fehlgeschlagen!“); Erfolg!") ;

 ?>

Referenz für Lösungen für häufige Probleme in der Praxis:

1. Artikellistenprobleme:

Felder erstellen und zeichnet den Dateinamen in der Datenbank auf. Bei jeder Generierung einer Datei wird der automatisch generierte Dateiname in der Datenbank gespeichert. Bei empfohlenen Artikeln verweisen Sie einfach auf die Seite im angegebenen Ordner, in der die statischen Dateien gespeichert sind. Verwenden Sie PHP-Operationen, um die Artikelliste zu verarbeiten, als Zeichenfolge zu speichern und diese Zeichenfolge beim Generieren der Seite zu ersetzen. Fügen Sie beispielsweise die Markierung {articletable} zur Tabelle hinzu, in der die Artikelliste auf der Seite platziert wird, und in der PHP-Verarbeitungsdatei:

 
 $title = "http ://siyizhu.com Test template";

 $file = "TwoMax Inter test template,
author:Matrix@Two_Max";

 $fp = fopen ("temp.html ","r") ;

 $content = fread ($fp,filesize ("temp.html"));

 $content = str_replace ("{file}",$file ,$content);

 $content = str_replace ("{title}",$title,$content);

 //Starte die Generierung einer Liste

 $list = ' ';

$sql = "select id,title,filename from Article";

$query = mysql_query ($sql); while ($result = mysql_fetch_array ( $query)){

$list .= ''.$result['title'].'
';

 }

$content .= str_replace ("{articletable}" ,$list,$content);

// Ende der Listengenerierung

// echo $content

$filename = "test/ test.html";

 $handle = fopen ($filename,"w"); //Öffnen Sie den Dateizeiger und erstellen Sie die Datei

  /*

  Überprüfen Sie, ob die Datei ist erstellt und beschreibbar

 */

 if (!is_writable ($filename)){

 die ("Datei: „.$filename.“ ist nicht beschreibbar , bitte überprüfen Sie seine Eigenschaften und versuchen Sie es erneut! Datei erstellen".$filename."Success!" );

 ?>

  Zweitens das Paging-Problem.

Wenn wir eine Paginierung angeben, gibt es 20 Artikel pro Seite. Nach der Datenbankabfrage gibt es 45 Artikel in einer bestimmten Unterkanalliste. Zuerst erhalten wir die folgenden Parameter durch Abfrage: 1. Gesamtzahl der Seiten 2. Anzahl der Artikel pro Seite. Der zweite Schritt, for ($i = 0; $i
 
$fp = fopen ("temp.html", "r");

$content = fread ($fp,filesize ("temp.html")); >
$onepage = '20';

$sql = "select id from Article wherechannel='$channelid'"; 🎜> $num = mysql_num_rows ($query);

 $allpages = ceil ($num / $onepage);

 for ($i = 0;$i
if ($i == 0){

$indexpath = "index.html";

} else {

$indexpath = "index_".$i."html";

 }

$start = $i * $onepage

$list = ''; > $sql_for_page = "select name,filename,title from Article where channel='$channelid' limit $start,$onepage";

$query_for_page = mysql_query ($sql_for_page);

while ($result = $query_for_page){

 $list .= ''.$title.'
'

 }

 $content = str_replace (" {articletable}",$list,$content);

  if (is_file ($indexpath)){

  @unlink ($indexpath); //Wenn die Datei bereits existiert, löschen Sie sie

 }

$handle = fopen ($indexpath,"w"); //Öffnen Sie den Dateizeiger und erstellen Sie die Datei

/*

Überprüfen Sie, ob die Datei erstellt und beschreibbar ist. */

if (!is_writable ($indexpath)){

echo „File: „.$indexpath.“ ist nicht beschreibbar. Bitte überprüfen Sie das Attribut und versuchen Sie es noch einmal! echo „Datei generieren“.$indexpath.“Fehlgeschlagen!“; //Ändern zu echo

 }

fclose ($handle); //Zeiger schließen

}

 fclose ($fp);

 die („Die Generierung der Auslagerungsdatei ist abgeschlossen. Wenn die Generierung unvollständig ist, überprüfen Sie bitte das Dateiberechtigungssystem und führen Sie eine Neugenerierung durch!“); > ?>

Die allgemeine Idee ist, dass der Seite nach Bedarf weitere Datengenerierung, Dateneingabe- und -ausgabeprüfung, Paging-Inhalt usw. hinzugefügt werden können.

Im eigentlichen Artikelsystemverarbeitungsprozess müssen noch viele Probleme berücksichtigt werden. Es gibt viele Unterschiede zwischen www.lampbrother.net und dynamischen Seiten, die beachtet werden müssen. Aber die allgemeine Idee ist diese, und andere Aspekte können durch Analogie gezogen werden.

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
Was ist der Unterschied zwischen absoluten und müßigen Sitzungszeitüberschreitungen?Was ist der Unterschied zwischen absoluten und müßigen Sitzungszeitüberschreitungen?May 03, 2025 am 12:21 AM

Die Absolute -Sitzungs -Zeitlimit startet zum Zeitpunkt der Erstellung der Sitzung, während eine Zeitlimit in der Leerlaufsitzung zum Zeitpunkt der No -Operation des Benutzers beginnt. Das Absolute -Sitzungs -Zeitlimit ist für Szenarien geeignet, in denen eine strenge Kontrolle des Sitzungslebenszyklus erforderlich ist, z. B. finanzielle Anwendungen. Das Timeout der Leerlaufsitzung eignet sich für Anwendungen, die die Benutzer für lange Zeit aktiv halten, z. B. soziale Medien.

Welche Schritte würden Sie unternehmen, wenn Sitzungen nicht auf Ihrem Server funktionieren?Welche Schritte würden Sie unternehmen, wenn Sitzungen nicht auf Ihrem Server funktionieren?May 03, 2025 am 12:19 AM

Der Serversitzungsausfall kann durch Befolgen der Schritte gelöst werden: 1. Überprüfen Sie die Serverkonfiguration, um sicherzustellen, dass die Sitzung korrekt festgelegt wird. 2. Überprüfen Sie die Client -Cookies, bestätigen Sie, dass der Browser es unterstützt und korrekt senden. 3. Überprüfen Sie die Speicherdienste wie Redis, um sicherzustellen, dass sie normal arbeiten. 4. Überprüfen Sie den Anwendungscode, um die korrekte Sitzungslogik sicherzustellen. Durch diese Schritte können Konversationsprobleme effektiv diagnostiziert und repariert werden und die Benutzererfahrung verbessert werden.

Welche Bedeutung hat die Funktion Session_start ()?Welche Bedeutung hat die Funktion Session_start ()?May 03, 2025 am 12:18 AM

Session_Start () iscrucialinphPFormAnagingUSSERSIONS.1) ItinitiatesanewSessionifnoneExists, 2) Wiederaufnahmen und 3) setaSessionCookieforContinuityAcrossRequests, aktivierende Anwendungen wie

Was ist für die Festlegung der HTTPonly -Flag für Sitzungs Cookies wichtig?Was ist für die Festlegung der HTTPonly -Flag für Sitzungs Cookies wichtig?May 03, 2025 am 12:10 AM

Das Festlegen des HTTPonly -Flags ist für Sitzungscookies von entscheidender Bedeutung, da es effektiv verhindern und die Informationen zur Benutzersitzung schützen kann. Insbesondere 1) Das Httponly -Flag verhindert, dass JavaScript auf Cookies zugreift, 2) Das Flag kann durch SetCookies eingestellt werden und in PHP und Flasche 3), obwohl es nicht von allen Angriffen von allen Angriffen verhindert werden kann, Teil der Gesamtsicherheitsrichtlinie sein sollte.

Welches Problem lösen PHP -Sitzungen in der Webentwicklung?Welches Problem lösen PHP -Sitzungen in der Webentwicklung?May 03, 2025 am 12:02 AM

PhpSsionSsionSolvetheProblemofMaintainingStateAcrossmultipehttprequestsBoringDataontheserverandassociatingitittprequests.1) Sie starteten die Stundeataserver-Seite, typischerweise infileSordatabasen, undusaSasionIdinacookookookotenData

Welche Daten können in einer PHP -Sitzung gespeichert werden?Welche Daten können in einer PHP -Sitzung gespeichert werden?May 02, 2025 am 12:17 AM

PHPSSIONS CANSTORESTRINGEN, ZUGNALTEN, ARRAYS, ANDOBjekte.1.

Wie starten Sie eine PHP -Sitzung?Wie starten Sie eine PHP -Sitzung?May 02, 2025 am 12:16 AM

TostartaphpSession, useSession_start () atthescript'Sbeginning.1) PlaCEITBEFOREANYOUTPUTTOTHESESSIONSCOOKIE.2) useSsionsforuserDatalikeloginStatusOrShopingCarts

Was ist eine Sitzungsregeneration und wie verbessert es die Sicherheit?Was ist eine Sitzungsregeneration und wie verbessert es die Sicherheit?May 02, 2025 am 12:15 AM

Die Sitzung der Sitzung bezieht sich auf die Generierung einer neuen Sitzungs -ID und die Ungültigmachung der alten ID, wenn der Benutzer sensible Vorgänge bei festgelegten Sitzungsangriffen ausführt. Die Implementierungsschritte umfassen: 1. Erkennen sensibler Vorgänge, 2. Erstellen neuer Sitzungs-ID, 3..

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor