从 php 内部将 "/\ 字符替换为 sed"



我使用shell_exec/dd/dev/urandom从php(通过网页(生成密码。我想消除
"/我生成的密码中的字符。

如果我用替换我的sed生产线

's/["/]/!/g'

脚本无法执行。然而,我从命令行测试了这一点,比如

echo "this /is "a test" | sed -e 's/["/]/!/g'

然后我得到了正确的结果:这个!是一测试

如果我从sed行中删除这个替换部分,php脚本确实可以正常执行。问题出在哪里?我认为括号[]内的字符是安全的,不需要转义。。这就是问题所在吗?

在PHP中,如果在双引号字符串文本中使用该命令,则需要用一个反斜杠"转义",并且括号表达式中的反斜杠也必须转义。

最后,这一定看起来像

sed 's/["/\]/!/g'

最新更新