0

这是一个简单的php代码

<?php
ob_start(passthru('/usr/bin/env node getResult.js '));
$data = ob_get_contents();
ob_end_clean();
//  console shows Data as String but $data is still empty
    echo "Data : " . $data;
?>

而 node.js 脚本只有一个变量 result ,其中包含一个对象。

console.log("skript startet");
var get = function(){
/*do stuff to get variable*/
        result = "test;
        console.log(result);
        return result;
      });
    });
};
get();

问题:我需要 getResult.js 脚本中的变量,但我无法在 php 中捕获它。有任何想法吗 ?

4

2 回答 2

1

为什么要打扰输出缓冲区呢?

exec( '/usr/bin/env node getResult.js', $data );
echo "Data: " . $data;

exec()将命令的完整输出写入提供的变量。

于 2016-03-04T10:45:56.067 回答
0

这是你需要的吗?

<?php
ob_start(); //note, no parameter here
passthru('/usr/bin/env node getResult.js '); // this should be captured
$data = ob_get_contents();
ob_end_clean();

echo "Data : " . $data;
?>
于 2016-03-04T10:40:20.687 回答