gpt4 book ai didi

php - 双引号在 PHP 的 shell_exec 和 sed 中不断被解析

转载 作者:搜寻专家 更新时间:2023-10-31 21:35:19 25 4
gpt4 key购买 nike

我花了几个小时试图解决这个问题。我正在使用 shell_exec(是的,我知道与此相关的安全问题)并使用 sed 来更改文件中的文本。

问题是无论我尝试什么,我似乎都无法输出引号仍然完整的文本。我已经尝试了几乎每一种单引号和双引号的组合来逃避它,但它没有奏效。经过几个小时的尝试,我决定在这里问这个问题。

代码在 PHP 文件中:

shell_exec('sed -i "s/patterntoreplace/yolo(word,"Hello Everyone", word)/" test.txt

问题是文件以:

结尾
yolo(word,Hello Everyone, word)

引用不断被解析,我绝对需要它们。我尝试了各种方法,例如将它放入变量中,使用 escapeshellargescapeshellcmd 并尝试了单引号和双引号的各种组合,但我仍然无法让它工作.

这让我非常沮丧,因为这是我项目的最后一部分,它应该很简单,但我无法在没有引号的情况下运行我的程序。真是气死人了。

有人可以告诉我在该命令中要替换什么以使引号正确输出吗?

最佳答案

这应该有效:

$arg = 's/patterntoreplace/yolo(word,"Hello Everyone", word)/';
$cmd = 'sed -i '.escapeshellarg($arg).' test.txt';
shell_exec($cmd);

关于php - 双引号在 PHP 的 shell_exec 和 sed 中不断被解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21516585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com