PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamisches CMS > Statisches HTML Web


morsche
22.12.2004, 09:37:59
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, 09:39:56
Schau mal hier (http://www.php-faq.de/q/q-php-auf-cdrom.html). Da gibt es unter anderem Links zu Tools mit denen sich offline Versionen von Homepages generieren lassen.

morsche
22.12.2004, 09: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, 14:53:35
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, 14:57:44
Du könntest dir ein Script schreiben, mit dem die Seite, die du sicher willst, aufgerufen wird:


<?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, 15: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, 15:07:33
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 (http://www.php.net/manual/en/) könnte da doch helfen ;-)
ob_start() (http://de.php.net/manual/en/function.ob-start.php)
ob_get_contents() (http://de.php.net/manual/en/function.ob-get-contents.php)
ob_end_clean() (http://de.php.net/manual/en/function.ob-end-clean.php)

morsche
23.12.2004, 15:09:09
aah ja - sehr gut, so mach ich das!

vielen Dank :)

morsche
11.01.2005, 21:16:02
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.

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

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, 08: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

morsche
12.01.2005, 14:35:23
morsche,

habe es hinbekommen und zwar indem ich die abosolute url des scriptes angebe (inkl. tld) anstatt der relativen. wieso es deshalb nun mit der variablen übergabe klappt weiß ich auch nicht, aber egal :)

@andy:
auf die idee hätte ich auch kommen können :( ist vermutlich die einfachste lösung