2

実行中/usr/bin/perlまたは/usr/bin/phpNSTaskを介して、プログラムのHTTPヘッダーを取得したいと考えています。環境を適切にフォーマットしましたが(Perlではenv変数のプレフィックスを付ける必要がありますHTTP_)、どちらのタスクも生の出力以外のものを返しません。NSTaskのドキュメントとphpおよびperlのマニュアルページを確認しましたが、HTTPヘッダーの出力を強制する方法は見当たりませんでした。

何か案は?

編集:これは古代の質問だと思いますが、私はそれを再発見し、報告する必要があることに気づきました。問題は、私が使用すべきだったのであってphp-cli、ではないということでしphpた。php-cliこれを期待どおりに機能させるには、ソースからダウンロードしてコンパイルする必要がありました。しかし、一度やってみると、それは魅力のように機能しました。:)

4

3 に答える 3

3

perl または php スクリプトからの生の出力に基づいて作成した HTTP ヘッダーを出力の前に付ける必要がある場合があります。

たとえば、php スクリプトからの生の出力が content-type: text/html であることがわかっている場合、出力自体から長さを取得できます。少なくとも、同様のソリューションを実装するときに私がしたことだと思います。

于 2009-09-22T04:59:50.133 に答える
1

別のプロセスの環境を表示または変更することはできません。例外は、子プロセスの環境を変更できることですが、そのプロセスを作成する場合に限ります。したがって、perlまたはphpサブプロセスの初期環境を設定することはできますが、後でどの環境を使用しているかを読み取ることはできず、終了時にどの環境を使用していたかを確認することもできません。

PerlまたはPHPスクリプトにその環境を何らかの形式で出力させ、それをパイプを介してCocoaプロセスに読み込む必要があります。

于 2009-09-22T02:34:18.227 に答える
0

ターミナルから実行すると、スクリプトはヘッダーを出力しますか?その場合、おそらく-[NSTask setStandard*:](おそらくNSPipeを使用して)使用すると、出力をキャプチャするのに役立ちます。そうでない場合は、WebサーバーがCGIを処理するときにヘッダーを挿入する可能性があります。

于 2009-09-22T21:14:56.413 に答える