【问题标题】:PHP execute nodejs from another serverPHP从另一台服务器执行nodejs
【发布时间】:2018-05-23 21:50:36
【问题描述】:
我在网络上的共享主机上运行了一个 php 应用程序。但是有一个 nodejs puppeteer 脚本在我的个人计算机上运行,用于从只有我的用户有权限的网站中提取数据。
有没有办法让 PHP 应用运行 nodejs 脚本、发送参数、等待结果并在一切完成后刷新页面?
我试过 exec,但不工作。
exec("node server:80/jsFunction.js --test=", $test);
【问题讨论】:
标签:
php
node.js
web-scraping
chromium
puppeteer
【解决方案1】:
有很多方法来处理它。最简单直接的方法是在您的(或目标)计算机上设置服务器,然后简单地传递请求。这将能够单独控制节点脚本和 php 脚本。
在您的 PHP 文件中,您可以简单地使用 file_get_contents,
$text="some data to pass";
$homepage = file_get_contents("http://YOURPUBLICIPADDRESS:3000/?text=$text");
echo $homepage;
在你的节点 api 上,你可以有一些路由从那里处理 jsFunction,假设它是一个承诺,我可能可以使用 expressJS 来处理它。
var express = require('express')
var jsFunction = require('./jsFunction')
var app = express()
app.get('/', function (req, res) {
jsFunction(req.query.text).then(data=>res.send({data}))
})
app.listen(3000)