标签: php-phantomjs

如何从PHP执行PhantomJS

我想在localhost上从PHP执行PhantomJS.

任何机构都可以解释如何从PHP执行PhantomJS以及我应该从phantomjs.org下载什么软件包?

javascript php phantomjs php-phantomjs

19
推荐指数
2
解决办法
4万
查看次数

与Laravel的Php-phantomjs(文件不存在或不可执行:bin/phantomjs)

我正在尝试在CentOS 7Windows 8下使用laravel 5的php-phantomjs.

我按照PHP Phantom安装的说明(安装成功完成),之后我在尝试执行基本使用代码时收到此错误:

执行PhantomJs过程时出错"default" - 文件不存在或不可执行:bin/phantomjs(查看:PATH_TO_PROJECT\resources\views\welcome.blade.php)


基本使用代码

use JonnyW\PhantomJs\Client;

$client = Client::getInstance();

/** 
 * @see JonnyW\PhantomJs\Message\Request 
 **/
$request = $client->getMessageFactory()->createRequest('http://google.com', 'GET');

/** 
 * @see JonnyW\PhantomJs\Message\Response 
 **/
$response = $client->getMessageFactory()->createResponse();

// Send the request
$client->send($request, $response);

if($response->getStatus() === 200) {

    // Dump the requested page content
    echo $response->getContent();
}
Run Code Online (Sandbox Code Playgroud)

我搜索了很多,找到并尝试了几种解决方案,但没有成功.在Stackoverflow上,我发现一个问题任何人在ubuntu环境中成功地使用jonnyw的"php phantomjs"和laravel?.我可以在最后一条评论中看到这家伙解决了这个问题:

$client->setBinDir('absolute_path/bin');
$client->setPhantomJs('phantomjs.exe');
Run Code Online (Sandbox Code Playgroud)

我也试着去了,它又回来了另一个错误:

文件不存在或不可执行:phantomjs.exe(查看:PATH_TO_PROJECT\resources\views\welcome.blade.php)

但是当我尝试:

echo file_exists('absolute_path/bin/phantomjs.exe');
Run Code Online (Sandbox Code Playgroud)

它返回1表示PHP可以找到该文件absolute_path.


我不知道我做错了什么.任何人都已成功使用"php phantomjs"和laravel谁可以帮助我?

注意:问题中包含的代码是Windows版本代码,但我在两个操作系统中都收到相同的错误.


更新1 …

php centos laravel laravel-5.1 php-phantomjs

12
推荐指数
2
解决办法
8282
查看次数

在共享主机(1and1)上安装PhantomJS

使用1and1 linux共享主机,

我安装了:

PHP版本7.0.27 PHP PhantomJS 2.1.1

PHP PhantomJS的所有值都为null

每当我提出请求时:

$client = Client::getInstance();

$client->getEngine()->setPath($main_path.'core/composer/bin/phantomjs');
$client->getEngine()->addOption('--ssl-protocol=any');
$client->getEngine()->addOption('--ignore-ssl-errors=true');
$client->getEngine()->addOption('--web-security=false');
$client->getEngine()->addOption('--debug=true');
$client->getEngine()->addOption('--local-to-remote-url-access=true');

$request = $client->getMessageFactory()->createRequest("http://luclaverdure.com");
$response = $client->getMessageFactory()->createResponse();

$client->send($request, $response);
var_dump($request);
var_dump($response);

if($response->getStatus() === 200) {
    $resp = $response->getContent();
    var_dump($resp);
}
Run Code Online (Sandbox Code Playgroud)

我有一堆空值,并且phantomJS无法处理URL ...

请求:

object(JonnyW\PhantomJs\Http\Request)#113 (12) {
    ["type":protected]=> NULL
    ["headers":protected]=> array(0) {}
    ["settings":protected]=>
      array(1) {
        ["resourceTimeout"]=>
        int(5000)
      }
    ["cookies":protected]=>
      array(2) {
        ["add"]=>
        array(0) {
        }
        ["delete"]=>
        array(0) {
        }
      }
    ["data":protected]=>
      array(0) {
      }
    ["url":protected]=>
      string(59) "http://luclaverdure.com"
    ["method":protected]=>
      string(3) "GET"
    ["timeout":protected]=>
      NULL
    ["delay":protected]=> …
Run Code Online (Sandbox Code Playgroud)

php shared-hosting phantomjs composer-php php-phantomjs

8
推荐指数
1
解决办法
473
查看次数

PHP-phantomjs,避免分页

我正在使用PHP-phantomjs并按照我可以输出pdf和img的文档.http://jonnnnyw.github.io/php-phantomjs/

但我有分页问题.当一个图表在页面的末尾,但溢出时,它将被拆分在另一个页面中,如下面的捕获: 页面捕获

我找到了一些建议:

<div id="main" style="page-break-inside: avoid;"></div>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,或者说我弄错了.如果它是解决方案,那意味着我必须在html的每个元素中写这个?听起来不太好.

php-phantomjs

6
推荐指数
1
解决办法
313
查看次数