我想做...
<?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$
答案 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); ?>