博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】之前写了一篇文章主要介绍 phantomjs 的基本使用,本文介绍一下在 PHP 语言下面如何调用系统命令执行 phantomjs 实现功能。
下面直接给出执行代码:
echo '<meta charset = "utf-8">';
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博客 所有
本文标题:《如何在 windows 下使用 PHP 执行 phantomjs》
本文链接地址:http://www.mafutian.net/267.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
第 1 楼 朱曙明博客 2017-06-17 17:02:57 广东深圳
评论审核未开启 |