2016-04-19 10 views
0

Mein aktuelles Gesamtziel ist, dass Seite B, die eine leere Seite ist, den Inhalt von Seite A lädt, die während eines beliebigen Tages mehrmals aktualisiert wird. Ich kontrolliere nicht, wann der Inhalt von Seite A aktualisiert wird, aber die Idee ist, dass Seite B eine Testseite auf unserem Server sein wird, mit der wir in Echtzeit arbeiten können, da sie immer den aktuellen HTML-Code der Originalseite enthält.Kopieren und Laden der gesamten HTML-Seite einer Seite auf eine andere Seite

Also, um das viel einfacher zu setzen. Sagen wir, wurde jedes Mal foo.com geladen, die Sie foo.com/morefoo gehen könnte und es würde immer genau gleich aussehen wie die Startseite foo.com

Ich bin nicht für sofortige Lösungen zu suchen, sondern weitere Vorschläge für die besten Routen mit diesem, weil zu gehen Ich gehe Kreise in meinem Kopf und frage mich, welcher Weg der beste ist, um das anzugreifen. Mein erster Gedanke war, Seite A laden und speichern Sie den HTML-Code in eine Datei (ich glaube nicht, dass dies mit jQuery erreicht werden kann und PHP sein müsste), und dann Seite B laden Sie es mit include(). Aber ich weiß nicht, ob es ein Problem sein wird, wenn die Seite, die Millionen Mal am Tag angeklickt wird, jeden Tag, an dem die Seite geladen wird, Text in einer einzigen Datei speichert (und überschreibt).

+1

versuchen Sie mit einer cURL Anfrage für die Daten (von Seite A) auf Seite B laden. Dies wäre eine PHP-Lösung – Martin

+0

"* Millionen Mal am Tag *" wirklich? – Martin

+0

@Martin Ich fühlte mich nicht sehr gut, diesen Teil zu schreiben. Da ich immer noch mit der Informatik beschäftigt bin, war ich mir nicht ganz sicher, ob das Aktivitätsniveau der ursprünglichen Seite die Art und Weise beeinflussen würde, wie es am besten wäre, diese erste Idee, die ich hatte, umzusetzen. – JoeL

Antwort

0
$html = file_get_contents('http://foo.com'); //Get page contents 
file_put_contents('morefoo.html', $html); //Save page contents to file 

Dann haben Sie die gesamte gerenderte Seite auf eine neue HTML-Datei kopiert. Wenn die Stylesheets und Javascript-Dateien mit einer absoluten URL auf der Originalseite enthalten sind, werden Sie wahrscheinlich keine Probleme haben, die kopierte Seite zum Funktionieren zu bringen und wie das Original aussehen zu lassen. Wenn jedoch im HTML-Code verwandte Pfade definiert sind, müssen Sie die Seite analysieren und die relativen Pfade durch absolute Pfade ersetzen. Dafür würdest du auschecken http://php.net/manual/de/function.preg-replace.php

Aber du würdest den Inhalt nicht jedes Mal kopieren, wenn foo.com geladen wird. Das macht alles langsam. Sie würden einen Cronjob einrichten, um die morefoo.html jede Stunde oder so zu aktualisieren.

+0

Es gibt keine Notwendigkeit, es so komplex zu machen, wenn Sie die Daten zwischenspeichern möchten. Ein 'echo file_get_contents();' wird ausreichen, um die Quelldatei in der anfordernden PHP-Datei auszugeben. – Andreas

+0

Sie haben keine Regex vorgeschlagen, um HTML zu analysieren. – Andreas

+0

Ich empfehle Regex, relative URLs durch absolute URLs zu ersetzen. Was wäre eine bessere Lösung? –

Verwandte Themen