我经由NSTask运行/usr/bin/perl/usr/bin/php和想要检索节目的HTTP标头。我已经正确地格式化的环境(Perl的要求ENV瓦尔与HTTP_前缀),但无论是任务正在返回比原始输出的任何其他。我经历过上NSTask文档和手册页PHP和Perl,并没有看到任何方式强迫HTTP标头的输出。

任何想法?

修改:我知道这是一个古老的问题,但我只是重新发现了它,并意识到我应该汇报。问题是,我应该一直在使用php-cli,而不是php。我不得不从源下载和编译php-cli得到这个工作,我期待。有一次,我没有,但是,它的工作就像一个魅力。 :)

有帮助吗?

解决方案

您可能必须前缀根据您的Perl或PHP脚本的原始输出你用HTTP头输出,通过你建立。

例如,你知道,从一个PHP脚本的原始输出将是内容型:text / html的,你可以从输出本身的长度。至少我认为这就是我实现了类似的解决方案时做到了。

其他提示

您无法查看或改变另一个进程的环境。唯一的例外是,你可以改变一个孩子进程的环境,但只有当您创建的过程。因此,你可以设置你的Perl或PHP子进程的初始环境,但你可以不读它有什么样的环境后,你当然不能查看什么样的环境它有它的时候退出。

您需要做的Perl或PHP脚本输出它的环境在某些格式,阅读到您的可可过程中,通过一个管道。

请问当你从终端运行脚本打印头?如果是这样,可能使用-[NSTask setStandard*:](可能使用NSPipe)可以帮助捕获输出。如果不是,则可能是web服务器喷射头,因为它处理CGI。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top