从 php 中用 sed 替换 "/\ 字符
Replacing "/\ characters with sed, from within php
我使用 shell_exec / dd/ /dev/urandom 从 php(通过网页)生成密码。
我要消除
"/\
我生成的密码中的字符。
如果我用
在我的 sed 行中进行替换
's/["/\]/!/g'
脚本执行失败。但是我从命令行测试了这个
echo "this /is \"a \test" | sed -e 's/["/\]/!/g'
然后我得到了正确的结果:this !is !a !test
如果我从我的 sed 行中删除这个替换部分,php 脚本会正确执行。似乎是什么问题?我认为方括号 [] 中的字符是安全的,不需要转义。这是问题所在吗?
在PHP中,如果你在双引号字符串文字中使用命令,你需要用一个反斜杠转义"
,\"
,反斜杠在括号表达式也必须转义。
最后,这一定是这样的
sed 's/[\"/\]/!/g'
我使用 shell_exec / dd/ /dev/urandom 从 php(通过网页)生成密码。
我要消除
"/\
我生成的密码中的字符。
如果我用
在我的 sed 行中进行替换's/["/\]/!/g'
脚本执行失败。但是我从命令行测试了这个
echo "this /is \"a \test" | sed -e 's/["/\]/!/g'
然后我得到了正确的结果:this !is !a !test
如果我从我的 sed 行中删除这个替换部分,php 脚本会正确执行。似乎是什么问题?我认为方括号 [] 中的字符是安全的,不需要转义。这是问题所在吗?
在PHP中,如果你在双引号字符串文字中使用命令,你需要用一个反斜杠转义"
,\"
,反斜杠在括号表达式也必须转义。
最后,这一定是这样的
sed 's/[\"/\]/!/g'