2013-11-25 12 views
18

PHPからlocalhostでPhantomJSを実行したいです。PHPからPhantomJSを実行する方法

PhantomJSをPHPから実行する方法と、phantomjs.orgからダウンロードする必要があるパッケージについて説明していますか?

+1

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

+0

http://stackoverflow.com/questions/10651320/:

ダウンロードして、セットアップを使用すると、単純に次のコードを使用した後、 (phantomjs PHPのgoogleは良いヒットをたくさん与える、いくつかのstackoverflowでも) –

+0

私は地元でphp phantomjsスクリプトを実行することはできませんし、それはmakeですいくつかのエラーは、私はwhay彼らが起こるか知りません...私はgitからいくつかのこのスクリプトをテスト – MOB

答えて

24
  • あなたはスクリーンショットを作成しようとしている場合、セットアップfontconfigは(これは私の設定にはかなり具体的であるが、目標は持っていることを確認することです
  • chmod +x)、PhantomJS binaryをダウンロードし、どこかにアップロードし、それを実行可能にします少なくとも、あなたのシステム上でいくつかのフォント)
  • はPHPで次のコマンドを実行します。
    $response = exec('/path/to/phantomjs myscript.js');
+1

あまりにも多くの答えです。 私はWindows 7とxamppサーバーのlocalhostで使ってみます。 私はそれを実行可能にしますか?どのパッケージをダウンロードする必要がありますか? WindowsまたはLinuxのバージョン? – MOB

+0

それは仕事です。 thnx lot – MOB

+0

[この回答](https://groups.google.com/d/msg/phantomjs/s8RS-Glf7fg/z82YTZpWaycJ)に従うことで、この解決策に問題がある方は、私のPhantomスクリプトを正常に呼び出すことができましたPHP。 – Fisu

7

というライブラリが実際にありますは、これを簡単にするためのものです。

PHP PhantomJSは、 PhantomJSヘッドレスブラウザでページを読み込み、ページレスポンスを返す柔軟なPHPライブラリです。 javascriptのサポートを必要とするウェブサイトをテストするための便利な と のスクリーンキャプチャもサポートしています。

Full documentation

機能リスト:

  • ロードウェブページPhantomJSヘッドレスブラウザからページコンテンツ、ヘッダー、ステータスコードなど
  • ハンドルを含む
  • ビュー詳細レスポンスデータリダイレクト
  • javas CRIPTコンソールエラー
  • の詳細を表示PhantomJS
  • 保存画面がローカルディスクにキャプチャし、デバッグ情報
  • 設定ビューポートのサイズ
  • 画面キャプチャのx、yは、幅と高さが指定された時間のために
  • ディレイページのレンダリングパラメータの定義コマンドラインオプションで
  • 実行PhantomJS
  • 簡単
  • ビルドして実行するカスタムスクリプトPhantomJS

は、しかし、PhantomJSのバージョンがPHP PhantomJSのバージョンと互換性があることを確認してください:

は注意してください:このライブラリのバージョン4.0を現在 を待っていますPhantomJS 2.0の未解決の問題。

+0

未解決の問題は何ですか? –

2

私は最近、PHPがブラウザにアクセスできるようにプロジェクトを公開しました。ここに取得:https://github.com/merlinthemagic/MTS。フードの下ではPhantomJSに依存しています。

$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. 
関連する問題