php将字符串传递给外部diff命令

时间:2012-02-08 13:45:52

标签: php shell diff

我的程序生成两个字符串,我希望它们通过外部差异工具进行比较。 diff工具仅接受文件/目录作为参数。这是diff file1 file2完美无缺,但diff "hello" "world"不起作用。有没有办法将我的字符串直接传递给diff而不创建任何临时文件?谢谢。

1 个答案:

答案 0 :(得分:2)

在shell上,您可以使用临时管道。

diff <(echo "string 1") <(echo "string 2")

使用反引号运算符或任何其他方法在php中执行命令。有关执行命令的详细信息,请参阅手册:http://www.php.net/manual/en/ref.exec.php

确保你正确地逃脱了弦乐。

编辑:此功能称为临时管道。所以shell将它转换为文件描述符。

iblue@nerdpol:~$ echo <(echo "string")
/dev/fd/63
iblue@nerdpol:~$ cat <(echo "string")
string

有关详细说明,请参阅http://www.linuxjournal.com/article/2156?page=0,1