以下两行PHP工作正常:
exec("/bin/sed --in-place 's/_SINGLE_QUOTE_HERE_/SQ/' " . $fileSpec);
exec("/bin/sed --in-place 's/_DOUBLE_QUOTE_HERE_/DQ/' " . $fileSpec);
因此,如果文件包含以下文本:
I am 6_SINGLE_QUOTE_HERE_ 4_DOUBLE_QUOTE_HERE_ tall.
执行上述代码后,该文件包含:
I am 6SQ 4DQ tall.
但是,显然,我希望:
I am 6' 4" tall.
问题是,单/双引号本身搞砸了。
我试过这个,但它失败了:
exec("/bin/sed --in-place 's/_SINGLE_QUOTE_HERE_/\x27/' " . $fileSpec);
exec("/bin/sed --in-place 's/_DOUBLE_QUOTE_HERE_/\x22/' " . $fileSpec);
我也试过这个,但也失败了:
exec("/bin/sed --in-place 's/_SINGLE_QUOTE_HERE_/\'/' " . $fileSpec);
exec("/bin/sed --in-place 's/_DOUBLE_QUOTE_HERE_/\"/' " . $fileSpec);
提前感谢您解决此问题。
编辑:以下添加。
好的,这适用于单引号:
exec("/bin/sed --in-place 's/_SINGLE_QUOTE_HERE_/'\''/g' " . $program);
仍然存在双引号的问题。这不起作用:
exec("/bin/sed --in-place 's/_DOUBLE_QUOTE_HERE_/'\"'/g' " . $program);