0

私は奇妙な問題に直面しています。service に渡す特定の数の IP アドレスを保持する $ipList という名前の配列があります。サービスとは、IP がリストにあるかどうかを確認するために実行される API を意味します。このチェックは、curl セッションを通じて行われます。この結果を取得した後、1分間実行されます。配列を印刷すると、空白になります。呼び出しを実行しないと、配列が出力されます。しばらくすると配列がクリアされると思います。これをどうするか。

$ipList=getIpList(); //get iplist
$res=checkService($ipList); //this is the function for checking through curl 
print_r($ipList); // try printing array

行にコメントを付けると印刷されます$res=checkService($ipList);

私は助けが必要です !

4

1 に答える 1

0

最も可能性が高いのは、checkService関数 (「API 呼び出し」) がタイムアウトしていることです。

それが本当かどうかを確認してください。そうである場合は、最適化checkService(または対応するスクリプト) を試すか、PHP のタイムアウト間隔を増やしてください。

例 :

set_time_limit (0);

ドキュメンテーション :

http://php.net/manual/en/function.set-time-limit.php

void set_time_limit ( int $seconds )

スクリプトの実行を許可する秒数を設定します。これに達すると、スクリプトは致命的なエラーを返します。デフォルトの制限は 30 秒です。存在する場合は、php.ini で定義されている max_execution_time 値です。

呼び出されると、set_time_limit() はタイムアウト カウンターをゼロから再開します。つまり、タイムアウトがデフォルトの 30 秒で、スクリプト実行の 25 秒後に set_time_limit(20) などの呼び出しが行われた場合、スクリプトはタイムアウトするまで合計 45 秒間実行されます。

于 2013-02-13T05:18:57.630 に答える