2013-11-25 13 views
18

Ich möchte PhantomJS von PHP auf localhost ausführen.Wie führe ich PhantomJS von PHP aus

Kann jeder Körper erklären, wie man PhantomJS von PHP ausführt und welches Paket ich von phantomjs.org herunterladen sollte?

+1

https://packagist.org/packages/jonnyw/php-phantomjs – jszobody

+0

http://stackoverflow.com/questions/10651320/ start-phantomjs-server-from-php-und-warten-auf-its-antwort (google für "phantomjs php" gibt viele gute hits, einige sogar bei stackoverflow) –

+0

ich kann php phantomjs script auf meinem lokalen ausführen und es ist make ein Fehler, dass ich nicht weiß, wie sie passieren ... Ich teste einige dieses Skript von Git – MOB

Antwort

24
  • zum Download von PhantomJS binary, laden Sie es irgendwo und ausführbar machen (chmod +x)
  • wenn Sie Screenshots machen wollen, Setup fontconfig (das ist ziemlich spezifisch für meine Config aber das Ziel ist, um sicherzustellen, haben zumindest einige Schriften auf Ihrem System)
  • laufen die folgenden in PHP:
    $response = exec('/path/to/phantomjs myscript.js');
+1

Vielen Dank für die Antwort. ich versuche, es bei localhost in Windows 7 und Xampp Server zu verwenden. Wie mache ich es ausführbar? und welches Paket sollte ich herunterladen? Windows- oder Linux-Version? – MOB

+0

es ist Arbeit. Thnx viel – MOB

+0

Für jeden, der Probleme mit dieser Lösung hatte, indem ich [diese Antwort] (https://groups.google.com/d/msg/phantomjs/s8RS-Glf7fg/z82YTZpWaycJ) folgte, gelang es mir, mein Phantom-Skript erfolgreich aufzurufen PHP. – Fisu

7

Es gibt tatsächlich eine Bibliothekgenannt, um Ihnen das zu erleichtern!

PHP PhantomJS ist eine flexible PHP-Bibliothek Seiten durch die PhantomJS kopflos Browser zu laden und die Seite Antwort zurück. Es ist praktisch zum Testen von Websites, die Javascript-Unterstützung fordern und unterstützt auch Bildschirmaufnahmen.

Full documentation

Feature-Liste:

  • laden Webseiten durch die PhantomJS Headless Browser
  • Ansicht detaillierte Antwortdaten einschließlich Seiteninhalt, Header, Statuscode usw.
  • Griff Weiterleitungen
  • View Javas cript Konsole Fehler
  • Ansicht detaillierte PhantomJS ausgetestet Informationen
  • speichert Bildschirm lokale Festplatte fängt
  • Set Darstellungsgröße
  • definieren Screen-Capture-x, y, Breite und Höhe Parameter
  • Verzögerung Seiten-Rendering für eine bestimmte Zeit führen
  • PhantomJS mit Kommandozeilenoptionen
  • leicht erstellen und ausführen benutzerdefinierte Skripte PhantomJS
obwohl

Vergewissern Sie sich, dass Ihre Version von PhantomJS ist kompatibel mit Ihrer Version von PHP PhantomJS:

Bitte beachten Sie: Version 4.0 dieser Bibliothek wartet derzeit auf einem ungelöstes Problem mit PhantomJS 2.0.

+0

Was ist das ungelöste Problem, ist es, dass es lächerlich langsam Webseiten nach dem 1.9 zu öffnen? –

2

Ich habe kürzlich ein Projekt veröffentlicht, das PHP Zugriff auf einen Browser gibt. Holen Sie es hier: https://github.com/merlinthemagic/MTS.Unter der Haube beruht es auf PhantomJS.

Nach dem Download und Setup würden Sie einfach den folgenden Code verwenden:

$myUrl   = "http://www.example.com"; 
$windowObj  = \MTS\Factories::getDevices()->getLocalHost()->getBrowser('phantomjs')->getNewWindow($myUrl); 

//now you can either retrive the DOM and parse it, like this: 
$domData = $windowObj->getDom(); 

//or take screen shots 
$imageData = $windowObj->screenshot(); 

//or use the mouse to click buttons: 
$windowObj->mouseEventOnElement("[id=searchInput]", 'leftclick'); 

//or type with the keyboard : 
$windowObj->sendKeyPresses("my search words"); 

//or load and execute custom javascript, fill forms etc, etc.