在 Go 中获取 PHP 配置变量


Getting a PHP configuration variable in Go

我想获取命令的输出php -r 'echo get_cfg_var("some_var");'以根据预定义的值进行检查。目前,我有以下代码:

variableName := "default_mimetype"
cmd := exec.Command("php", "-r", "'echo get_cfg_var('"" + variableName + "'");'")
out, err := cmd.CombinedOutput()

跑步后,

err.Error()返回"exit status 254"

out "PHP Parse error: syntax error, unexpected end of file in Command line code on line 1"

导致此错误的原因是什么?难道我没有好好逃脱吗?

问题是你的论点。如果将已写入的内容更改为 shell 命令,它将如下所示:

$ php -r "'echo get_cfg_var('"default_mimetype'");'"

您会注意到,第二个参数周围有一组额外的引号,导致语法错误。您可以通过将exec.Command更改为以下内容来解决此问题:

cmd := exec.Command("php", "-r", "echo get_cfg_var('"" + variableName + "'");")