gpt4 book ai didi

php - 无法将命令行参数传递给运行 PHP CLI 的 NSTask

转载 作者:行者123 更新时间:2023-12-03 17:42:56 24 4
gpt4 key购买 nike

编辑:[已解决]见下文。

我将 PHP 作为 NSTask 启动,并尝试向其传递一些命令行选项:

NSTask *php = [[NSTask alloc] init];
[php setLaunchPath: phpPath];
NSArray *args = [[NSArray alloc] initWithObjects: @"-r 'echo 123;'", nil ];
[php setArguments: args];
[php launch];

当我从 Objective-C 运行此程序时,我总是收到以下 PHP 错误:

对于:
@"-r 'echo 123;'"
@"-r\'echo 123;\'"
@"-r\"回显 123;\""
解析错误:语法错误,第 1 行命令行代码中出现意外的 $end

对于:
@"-r '回显\'你好\';'"解析错误:语法错误,第 1 行命令行代码中出现意外的 T_STRING

对于:
@"--run 'echo 123;'"
用法:php [选项] ...

应该注意的是,当从 Objective-C 调用时,所有错误都是由 PHP 解释器报告的,但是当我在命令行上尝试完全相同的选项字符串时,它会按预期工作。

这里出了什么问题?我应该如何编写参数才能正确传递给 NSTask?

PS:我的真正目标是执行一些 include() 行而不是 echo,这也不起作用,而是收到意外的封装字符串错误。

最佳答案

哦,我在另一个问题上看到了。
我将 -r 'echo 123;' 视为单个参数,而实际上它们是两个,它应该是:
NSArray *args = [[NSArray alloc] initWithObjects: @"-r", @"echo 123;", nil ];
对不起!谢谢。

关于php - 无法将命令行参数传递给运行 PHP CLI 的 NSTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100076/

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