我编写了一个必须通过CLI执行的简单php脚本,它需要两个参数。
/usr/local/bin/php myscipt.php arg1 arg2
它运作良好,但如果我放了像
这样的东西/usr/local/bin/php myscipt.php ar"g1 arg2
或
/usr/local/bin/php myscipt.php ar"g1 ar'g2
它不会像我想的那样处理这个论点,我该怎么解决这个问题。
答案 0 :(得分:1)
您应该运行Linux shell或类似的。引号是shell语法的一部分。所以你需要逃脱它们。
在shell中转义字符的方式取决于软件。但是大多数都支持使用反斜杠,单引号或双引号进行转义,例如:
php script.php \'string\' 'word1 word2 word3'
php script.php "word $shell_variable"
答案 1 :(得分:0)
请问我! 我想你不明白我的意思。 所以我会尝试解释更多。 命令行的真正语法是
/usr/local/bin/php script1.php arg1 arg2 arg3
这样的论点不应包含"或者' 问题是:如何在脚本中对待" script1.php" "或者'所以要纠正它们或将它们抹掉。
感谢