私は小さなスクリプトを開発していますが、私はいくつかのcurlとwhileループを使って少しうんざりしています。whileループを使ったPHPの複数のカールURL
URLの1つが私に情報を与えている時点で、カールの処理を停止したいと考えています。注:私は複数のカール要求があります。
だから私の考え方は私がからの情報を処理し、取得したURLのカップルを持って、
です。特定のURLに情報が見つかった場合、それは私に文字列を与えます。情報が見つからなければ、それは私に価値を与えません。だから私はおよそ10個のURLを処理しています。すべての場合、URLのいずれかが私に情報を与えているので、残りのURLは価値がないでしょう。 URLの処理が多いので、待ち時間が問題になります。下のサンプルコードで、urlがvalue2.phpで終わって結果が得られたら、直ちに他のURLの処理を停止したいと考えていました。私はすでに結果と他のカールを実行する点がないので、最後に結果を印刷しなければなりません。
また、URLのいずれも結果を生成しない状態があります。誰かがそれを処理する方法を私に示していると、それは素晴らしいものになります。
サンプルコードです。
<?php
///functions here
do {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value1.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value2.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value3.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value4.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value5.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value6.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value7.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value8.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value9.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"example[dot]com/value10.php?process=$param");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$combined = curl_exec ($ch);
curl_close ($ch);
} while (strlen($combined) != 0);
echo $combied;
///functions here
?>
あなたのURLは定数ですか?あなたの結果があなたのために十分になるまで、アドレスの配列を使ってカールする呼び出しを1回だけ呼び出すのはなぜですか? – user15
はい、すべてのURLは一定ですが、それぞれ異なるURLです。 3番目のURLが私に結果を与える場合、どうやって処理を止めることができますか?私はwhileループを処理しなければならず、それを打つ。 –
結果が見つかった後、**を停止する必要がありますか?言い換えれば、彼らは特定の順序で処刑されなければならないし、順序を変更することは何かを混乱させるか、それとも重要ではないか? – Mike