如何在windows10下用PHP执行phantomjs教程

主要介绍 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 放置于网站的根目录下。另外:在 PHP 下执行 phantomjs 也可以使用另外一个函数 systom() 来执行,这里就不给出简介了。

你可能感兴趣的:(PHP)