Ist es möglich, den Inhalt einer URL mit PHP zu erhalten (mit einer Art Funktion wie file_get_contents
oder header
), aber erst nach der Ausführung von etwas JavaScript-Code?
Beispiel:
mysite.com hat ein Skript, das loadUrlAfterJavascriptExec('http://exampletogetcontent.com/')
enthält und den Inhalt druckt / echoet. Stellen Sie sich vor, dass jQuery auf http://exampletogetcontent.com/
ausgeführt wird, das DOM ändert, und loadUrlAfterJavascriptExec
wird das resultierende HTML
Können wir das tun?
Nur um klar zu sein, was ich will ist, den Inhalt einer Seite durch eine URL zu bekommen, aber nur nachdem JavaScript auf der Zielseite läuft (die eine PHP bekommt ihren Inhalt).
Mir ist bewusst, dass PHP läuft, bevor die Seite an den Client gesendet wird, und JS erst danach, aber dachte, dass es vielleicht eine Expertenumgehung gibt.
Update 2 Fügt weitere Details zur Verwendung von phantomjs
aus PHP hinzu.
Update 1 (nachdem klargestellt wurde, dass JavaScript auf target Seite zuerst ausgeführt werden muss)
1. Laden Sie phantomjs herunter und legen Sie die ausführbare Datei in einen Pfad, den Ihre PHP-Binärdatei erreichen kann.
2. Legen Sie die folgenden 2 Dateien in dasselbe Verzeichnis:
get-website.php
%Vor%get-website.js
%Vor% 3. Suchen Sie nach get-website.php
und der Zielwebsite, http://google.com
Inhalt wird nach dem Ausführen von JavaScript inline zurückgegeben. Sie können dies auch über eine Befehlszeile mit php /path/to/get-website.php
aufrufen.
/get-website.php
%Vor%test.html
%Vor%Alles PHP wird ausgeführt, bevor die Informationen an den Client gesendet werden. Das gesamte JavaScript wird ausgeführt, nachdem die Informationen an den Client gesendet wurden.
Um nach dem Laden der Seite etwas mit PHP zu tun, muss die Seite entweder
seinDa die Daten anscheinend in einer anderen Datei als Ihrer PHP-Datei enthalten sind, ist dies eine ziemlich gute Lösung. Da Sie es mit jQuery getaggt haben, nehme ich an, dass Sie es verwenden.
jQuery hat eine Reihe von Seiten darüber, wie Ajax implementiert wird
Der einfachste Weg, um jQuery zu verwenden, ist .post
ex:
%Vor% $.post()
kann, wie der Name schon sagt, Daten zusammen mit der Anfrage für die Datendatei senden. Wenn diese Anfrage beispielsweise eine PHP-Datei ist, kann die PHP-Datei diese Daten verwenden.
ex:
%Vor%Die Daten sollten in Schlüssel / Wert-Paaren im JSON-Format vorliegen.
Tags und Links javascript jquery php curl http-headers