提问人:user152400 提问时间:11/24/2021 最后编辑:user152400 更新时间:11/24/2021 访问量:60
将 “/\ 字符替换为 sed,从 php 中
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 脚本确实可以正常执行。似乎有什么问题?我认为括号内的字符 [] 是安全的,不需要转义。.这是问题所在吗?
答:
0赞
Wiktor Stribiżew
11/24/2021
#1
在 PHP 中,如果在双引号字符串文本中使用命令,则需要使用单个反斜杠转义 ,并且还必须转义括号表达式中的反斜杠。"
\"
最后,这必须看起来像
sed 's/[\"/\\]/!/g'
评论
0赞
user152400
11/25/2021
是的,我应该提供密码生成行,但是是的,我使用的是双引号 shell_exec(“dd if=/dev/urandom .....|基数64 |sed ' ......'")
评论
sed 's/[\"/\\]/!/g'