編輯:[解決]見下文。無法將命令行參數傳遞給運行PHP CLI的NSTask
我推出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 '回聲123;'」
@ 「 - R \ '回聲123; \'」
@ 「 - R \」 回聲123; \ 「」
Parse error: syntax error, unexpected $end in Command line code on line 1
對於:
@ 「 - R '回波\' 你好\ ';'」 Parse error: syntax error, unexpected T_STRING in Command line code on line 1
對於:
@ 「 - 運行 '回聲123;'」
Usage: php [options] ...
應該注意的是,所有錯誤都是從Objective-C調用時從PHP解釋器報告的,但是當我在comman上嘗試完全相同的選項字符串時d線,它按預期工作。
這裏有什麼問題?我應該如何編寫參數才能正確傳遞給NSTask?
PS:我真正的目標是執行一些include()
行而不是echo,這也行不通,而是我得到一個意外的Encapsed String的錯誤。
不太可能有所作爲,但如果使用'echo(123);'而不是'echo 123;'會怎麼樣? – DaveRandom
沒有,不管怎樣,我已經找到了解決方案,請參見下文。謝謝! – Petruza