PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Dynamisches CMS > Statisches HTML Web (http://www.selfphp.de/forum/showthread.php?t=9366)

morsche 22.12.2004 10:37:59

Dynamisches CMS > Statisches HTML Web
 
morsche,

ich habe ein PHP CMS vorliegen und möchte auf einfachstem Wege daraus ein statisches Web generieren, also für jeden möglichen Klick-Fall eine HTML Seite erstellen, damit das Web auch offline verfügbar ist. Die dafür notwendige Programmiertechnik ist soweit klar, nur weiß ich noch nicht, wie ich mit PHP aus bestehenden PHP Dateien mit Hilfe eines Schleifendurchlaufs HTML Dateien erstellen kann. Bisher habe ich es immer mit Perl gemacht und da war das mit dem Template Modul kein Problem, aber in diesem Fall habe ich das Web leider nicht mit Templates aufgesetzt. Meine Vorstellung war, mit Hilfe eines einzigen Scriptes alle notwendigen PHP Dateien mittels Schleife zu öffnen, alle entsprechenden (z.B. Produkt-) Seiten zu generieren und eben jede generierte Seite als HTML abzuspeichern, nur wie lässt sich das umsetzen?

Im Prinzip habe ich beispielsweise eine PHP Datei mit einer Produktübersicht mit leidglich ein paar Variablen drin. Wie kann ich diese mittels eines Scriptes auslesen, die Variablen durch deren Inhalt ersetzen und das dann als HTML speichern?


Ich danke schonmal für jede Hilfe.

Gruß,
morsche

xabbuh 22.12.2004 10:39:56

Schau mal hier. Da gibt es unter anderem Links zu Tools mit denen sich offline Versionen von Homepages generieren lassen.

morsche 22.12.2004 10:46:33

ansich ist das keine schlechte Sache, aber bei meinem Fall soll es später ein Admin-System geben von dem aus alle Inhalte des CMS verwaltet werden können und eben auch diese Offline Variante für CD Publikationen erstellt werden kann. Damit das für den Endbenutzer schön einfach bleibt und ich ausreichend Einfluss auf den Umfang und die Namensgebung habe, würde ich es gerne mit PHP lösen.

morsche 23.12.2004 15:53:35

etwas einfacher ausgedrückt...
 
ich versuche mich nochmal etwas anders zu formulieren - vielleicht hat ja dann jemand eine idee :)

also:
gibt es eine möglichkeit, ein php script (mit parametern) durch ein anderes php script aufrufen zu lassen und die resultierenden html daten des aufgerufenen scriptes direkt in eine datei auf dem server zu speichern?
dabei sollte der jeweilige html content möglichst nicht ausgegeben werden, da mehrere tausend dateien in einer schleife erstellt werden sollen.

xabbuh 23.12.2004 15:57:44

Du könntest dir ein Script schreiben, mit dem die Seite, die du sicher willst, aufgerufen wird:

PHP-Code:

<?php
    ob_start
();
    include(
'file.php');
    
$content ob_get_contents();

    
//  $content in eine HTML Datei schreiben

    
ob_end_clean();

    print 
'Seite gesichert';
?>


morsche 23.12.2004 16:03:49

was sind das für funktionen (ob_start, ob_get_contents, ob_end_clean) ?

ansonsten sieht es nach einer recht guten lösung aus.

xabbuh 23.12.2004 16:07:33

Zitat:

Original geschrieben von morsche
was sind das für funktionen (ob_start, ob_get_contents, ob_end_clean) ?

ansonsten sieht es nach einer recht guten lösung aus.

Das Manual könnte da doch helfen ;-)
ob_start()
ob_get_contents()
ob_end_clean()

morsche 23.12.2004 16:09:09

aah ja - sehr gut, so mach ich das!

vielen Dank :)

morsche 11.01.2005 22:16:02

Problem bei der Umsetzung
 
morsche,

habe das jetzt mal getestet und im Prinzip funktioniert es auch, bis auf eine Ausnahme:

Wenn ich Parameter innerhalb einer include, require, o.ä. Funktion an die zu öffnende URL anhänge, gibt's eine Fehlermeldung.

PHP-Code:

include("katalog_produktdetails.php?aid=5"); 


Warning: main(katalog_produktdetails.php?aid=5): failed to open stream: No such file or directory in [...]/statics_produktdetails.php on line 28

Warning: main(): Failed opening 'katalog_produktdetails.php?aid=5' for inclusion (include_path='.') in [...]/statics_produktdetails.php on line 28


Mache ich das Ganze mit

PHP-Code:

include("katalog_produktdetails.php"); 

also ohne Parameter, funktioniert es, aber das bringt mich halt nicht weiter. Hat jemand eine Idee, wie man also diese PHP Dateien mit Parametern in eine Variable bekommt?


Danke schonmal...


Gruß,
morsche

diver-network 12.01.2005 09:56:09

Hi,

wenn Du eine Datei includest ""erbt"" diese sämtliche vorher im aufrufenden Skript bekannten Variablen sowie deren Werte.

Sprich: ein include("datei?variable=wert") ist unnötig, da Du in der includierten Datei direkt mit echo $variable den Wert "wert" angezeigt bekommst.


HTH,

Andy


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:17:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.