Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过NodeJS将对象传递给PHP_Php_Node.js_Object - Fatal编程技术网

通过NodeJS将对象传递给PHP

通过NodeJS将对象传递给PHP,php,node.js,object,Php,Node.js,Object,我试图传递带有两个键/值的对象,当我让Apache连接到它时,我想在另一端读取它 我的nodejs服务器看起来是这样的: var sWeather = {"url1": "something", "url2": "another"}; var oWeather = JSON.stringify(sWeather); console.log(sWeather); var http = require('http'); http.createServer(function (req, res)

我试图传递带有两个键/值的对象,当我让Apache连接到它时,我想在另一端读取它

我的nodejs服务器看起来是这样的:

var sWeather = {"url1": "something", "url2": "another"};
var oWeather = JSON.stringify(sWeather);
console.log(sWeather);


var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(sWeather+'\n');
}).listen(1340, '#');
console.log('Server running at http://###/');
<?php
$responseFromNode = file_get_contents("IP address");
var_dump($responseFromRuby);
现在我对nodejs真的很陌生,我已经尝试了很多东西,所以我不确定是否需要在发送之前对
sWeather
进行字符串化

我的PHP文件如下所示:

var sWeather = {"url1": "something", "url2": "another"};
var oWeather = JSON.stringify(sWeather);
console.log(sWeather);


var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(sWeather+'\n');
}).listen(1340, '#');
console.log('Server running at http://###/');
<?php
$responseFromNode = file_get_contents("IP address");
var_dump($responseFromRuby);

我只想以字符串的形式访问这两个URL,以便存储它


任何提示都将不胜感激。

oWeather
是JSON字符串。改变

res.end(sWeather+'\n');

然后PHP端必须解码JSON

$responseFromNode = json_decode( file_get_contents("IP address") );
注意事项:


  • 您还应该更改您的内容类型:
    res.writeHead(200,{'content-type':'application/json'}),如所述
  • 您的变量名是反向的:
    • oWeather
      应该是对象
    • sWeather
      应该是JSON字符串

我不知道这是否是一个输入错误,但您有
var\u dump($responseFromRuby)
。。你是说
$responseFromNode
?他可能在使用
var\u dump
来查看他是否从节点服务器获得了他期望的结果。至于如何做到这一点,让您的节点端像RESTAPI一样,提供JSON,使用PHP中的cURL向您的节点应用程序发出请求。你还应该改变你的内容类型:
res.writeHead(200,{'content-type':'application/json'})嗨,胡安,谢谢你的回复,它帮助了我,就像我需要的一样。谢谢你指出倒排的var名称。当我可以的时候,我会标记你的帖子:)
$responseFromNode = json_decode( file_get_contents("IP address") );