从PHP执行PhantomJS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从PHP执行PhantomJS相关的知识,希望对你有一定的参考价值。

我正在尝试在我的php脚本上执行此命令。 shell_exec(“phantomjs C: sample sample.js”);

但只需几秒钟它就会返回null。我期待它应该需要很长时间,因为我已经在cmd上测试了这个命令并且它正在工作。

我正在使用ajax来调用执行此脚本的控制器,以便它可以在后台运行。问题是php端调用exec / shell_exec命令。任何人都可以开导我吗?

这是我的代码:

View.php

<a href="#" class="text-dark launch" id="<?php echo $row->id; ?>"> Launch</a>

ajax.js

$('.launch').on('click', function () {
    $.ajax({
        type: 'POST',
        url: 'http://localhost/sample/run_scrape',
        success: function (status) {
            console.log(status);
        }
    });
});

sample.php

 public function run() {

    $html = shell_exec("phantomjs C:samplescraper.js");
    echo json_encode($html);
}

scraper.js

var page = require('webpage').create();
page.open('https://detectmybrowser.com/', function(status){
    console.log("Status: " + status);   
    if(status === "success"){
        page.render('example.png');
    }
    phantom.exit();
});
答案

使用phantomjs的绝对路径为我工作

$html = shell_exec("C:your_path_to_phantomjs_binphantomjs C:samplescraper.js");

以上是关于从PHP执行PhantomJS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 windows 下使用 PHP 执行 phantomjs

从 php 启动 phantomjs 服务器并等待它的响应

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

PHP代码-psysh调试代码片段工具

使用 CURL PHP 执行 javascript 后获取 HTML 代码