php调用c windows,使用php-phantomjs时在c:\windows写入出错

这篇博客探讨了如何使用PHP结合PhantomJS动态生成网页内容的截图。通过设置参数,如URL、类型、宽度、高度等,实现不同页面的截取。代码中包含了请求头的设置,如API令牌、用户信息和CSRF令牌,以及错误处理和日志输出。同时,展示了相关视图文件的内容,用于展示请求的URL和生成二维码。
摘要由CSDN通过智能技术生成

哥们,你这个可以动态输出内容吗?我的windows上面不能运行,很烦人。

public function htmlToImage()

{

//模拟传过来的参数

$url = request('url', 'http://192.168.0.136:92/htmlToImageView');

$type = request('type', 1);

request()->offsetSet('api_token', 'bxs8T3pfy3IfcjftJWBfcNFsvB2Vh0W9Xgr7fww3jYUTuaIn5xFR0fYYr9iJ');

request()->offsetSet('user_info_id', 1);

request()->offsetSet('openid', 0);

// dd(request()->all());

$client = Client::getInstance();

$client->isLazy();

$client->getEngine()->debug(true); //允许或禁止调试

// 判断系统类型来决定执行文件的名称

$excute = PHP_OS == 'WINNT' ? 'phantomjs.exe' : 'phantomjs';

$client->getEngine()->setPath(base_path() . '/bin/' . $excute);

//截取全屏

$width = 0;

$height = 0;

$top = 0;

$left = 0;

//唯一文件名

$name = uniqid();

//存储位置

$storage_path = storage_path('app/public/capture/' . $name . '.jpg');

if ($type == 1) {

$request = $client->getMessageFactory()->createCaptureRequest($url, 'GET');

} else {

$request = $client->getMessageFactory()->createCaptureRequest($url, 'POST');

$request->addHeader('X-CSRF-TOKEN', csrf_token());

}

//带上cookie和csrftoken,传输的数据

$request->setRequestData(

array(

'api_token' => request('api_token'),

'user_info_id' => request('user_info_id'),

'openid' => request('openid'),

));

$request->addHeader('cookie', request()->header('cookie'));

$request->setTimeout(10000); //超过指定时间则中断渲染

$request->setOutputFile($storage_path);

$request->setViewportSize($width, $height);

$request->setCaptureDimensions($width, $height, $top, $left);

$response = $client->getMessageFactory()->createResponse();

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

$log = $client->getLog(); #输出调试日志

dd($log, $response->getContent()); #输出内容

return $this->outPutJson($storage_path);

}

public function htmlToImageView()

{

$request = request()->all();

return view('test.htmlToImageView', compact('request'));

}

视图文件内容:

Document

测试一下!

{{Request::url()}}

{!! QrCode::size(100)->generate(Request::url()); !!}

@php

dd($request);

@endphp

4384d599763b55231aa909358b41b531.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值