Редактировать: [решено], см. Ниже.
Я запускаю 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 \" echo 123; \ ""
Parse error: syntax error, unexpected $end in Command line code on line 1
Для:
@ "- r 'echo \' hello \ ';'"
Parse error: syntax error, unexpected T_STRING in Command line code on line 1
Для:
@ "- запустить 'эхо 123;'"
Usage: php [options] ...
Следует отметить, что все ошибки сообщаются из интерпретатора PHP при вызове из Objective-C, но когда я пытаюсь использовать ту же самую строку параметров в командной строке, она работает как положено.
Что здесь не так? Как мне написать аргументы, которые будут правильно переданы в NSTask?
PS: Моя настоящая цель - выполнить несколько include()
строк вместо эха, который тоже не работает, и вместо этого я получаю сообщение об ошибке неожиданной строки Encapsed.