2012-03-07 15 views
3

(Backstory:私のPHPスクリプトはコマンドライン(PHPの "exec()"コマンドで別のPHPスクリプトを実行しているので、ターゲットスクリプトが作成するcURLセッションによって元のPHPスクリプトがハングアップすることはありません)この私はこのようなPHPスクリプト呼んでいる電子メールプロバイダーのサーバーがラグであれば、私は私のユーザーのために遅いページのロードせずに取引メールを送ることができるように)コマンドラインで実行されるPHPスクリプトの文字列制限

のexec( "[PHP] [ターゲットを。スクリプト] [クエリ文字列] ")、[クエリ文字列]は典型的なHTTP GETクエリ文字列(変数=値&、変数2 =値2)です。クエリ文字列を使って電子メールデータをターゲットスクリプトに渡すのは、PHPホストがPHP.iniでフラグが無効になっているため、PHPスクリプトがコマンドラインから呼び出された$ argvを検出できないためです。 (どんな理由であれ、クエリーコールを追加すると動作します)

質問:このクエリー文字列の文字数制限はどのくらいですか?そこにも1つはありますか? HTTPやWebブラウザが混在することはありません。これは、ApacheとブラウザのGET文字制限が制約ではないことを意味しますか?しかし、もちろん、コマンドラインの制約はありますか?

+0

自分でテストするのはとても簡単です;-) – kirilloid

答えて

0

文字制限があるとは思わないが、使用しているオペレーティングシステムやこの場合はあなたのメモリに変換する言語によって決定される可能性があります。

あなたの質問にお答えしたいと思います。

0

suhosinパッチがインストールされたPHPの設定では、パラメータを取得するためのデフォルトの制限は、 512文字になります。悪い習慣では、ほとんどのブラウザ(IEを含む) は約2000文字までのURLをサポートしていますが、Apacheのデフォルトは8000です。suhosinで長いパラメータを に追加するには、suhosin.get.max_value_length =をphp.iniに追加してください。

関連する問題