javascript — не могу получить ответ от passthru

Это простой код 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. Есть идеи ?

1

Решение

Зачем вообще беспокоиться о буфере вывода?

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

exec() записывает полный вывод команды в предоставленную переменную.

1

Другие решения

Это то, что тебе надо?

<?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;
?>
0

По вопросам рекламы [email protected]