我可以从php调用nodejs应用程序吗?

时间:2012-08-23 18:46:49

标签: php node.js

我想做...

<?php $content = `echo 'h1 happy days' | jade`; ?>

但它不会返回任何东西。其他命令(例如ls

我尝试将jade添加到路径中,在/bin中创建一个链接,该链接可以在命令行中运行,但不能在php中运行。

我做错了什么?

编辑:

从命令行:

bash-3.2$ pwd
/Users/billy/test/website-clear
bash-3.2$ echo 'h1 happy days' | jade
<h1>happy days</h1>bash-3.2$ which jade
/bin/jade
bash-3.2$ 

2 个答案:

答案 0 :(得分:1)

你还有两个可能适合你的选择: 1. proc_open如果你想要更多程度的控制:

    $handle = proc_open("jade", array( array("pipe", "r"), array("pipe", "w"), array("pipe", "w")), $pipes);
    fwrite($pipes[0], 'h1 happy days');
    fclose($pipes[0]);
    $result = stream_get_contents($pipes[1]);
    return $result;

2。使用exec:

    exec("echo 'h1 happy days' | jade", $output, $retval);
    return $output;

确保您有路径中的玉或使用jade可执行文件的完整路径。

答案 1 :(得分:0)

使用system功能。我相信你的外部调用由操作系统创建它自己的上下文,然后操作系统获得它自己的stdin / stdout / stderr。这样做:

<?php $content = system("echo 'h1 happy days' | jade", $retval); ?>