Windows 10でPHPでphantomjsチュートリアルを実行する方法

1422 ワード

主にphantomjsの基本的な使用について説明し、PHP言語の下でシステムコマンドを呼び出してphantomjs実装機能のチュートリアルを実行する方法について説明します.
echo '';
exec('H:\wamp\www\phantomjs\bin\phantomjs --output-encoding=utf8 H:\wamp\www\Xss_Scanner\test.js ',$output_main);
var_dump($output_main);
//	$str = implode('',$output_main);
//	var_dump($str);

test.jsファイルの内容は以下の通りです.
console.log('Loading a web page');
var page = require('webpage').create();
var url = 'http://www.mafutian.net/';
page.open(url, function (status) {
    //Page is loaded!
    if (status !== 'success') {
        console.log('Unable to post!');
    } else {
        console.log(page.content);
    }
    phantom.exit();
});

**注意、**上記の実行結果を実現するには、(1)PHPのセキュリティモードをオンにできない、すなわちphp.iniでsql.safe_modeをOffに設定する必要がある.(サーバを再起動し、もちろんphp自体のデフォルトはセキュリティモードをオンにしない)(2)phantomjsがシステム環境変数に組み込まれているかどうかにかかわらず、exec()では絶対パスであるべきである.次の実行は無効です.
exec('phantomjs --output-encoding=utf8 H:\wamp\www\Xss_Scanner\test.js ',$output_main);

phantomjsを絶対パスにする必要があります.(3)jsファイルは絶対パスを取らなくてもよい.ウェブサイトのルートディレクトリに対して、以下の実行は成功する.
exec('H:\wamp\www\phantomjs\bin\phantomjs --output-encoding=utf8 test.js ',$output_main);

注:test.jsは、Webサイトのルートディレクトリの下に配置されます.なお、PHPでphantomjsを実行する場合は、別の関数systom()を使用して実行することもできますが、ここでは説明しません.