問題タブ [curl-multi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
67124 参照

php - PHPの複数のCurlリクエスト

私は現在、PHP用のCurlをよく使用しています。毎回約100ページの結果を得るには時間がかかります。すべてのリクエストに対して、私はこのようなコードを使用しています

物事をスピードアップするための私のオプションは何ですか?

どうやって使うのmulti_init()

0 投票する
2 に答える
1378 参照

php - PHPマルチカール-特定のカールハンドルに使用されたプロキシを確認します

匿名プロキシでマルチカールを使用していますが、カールハンドルが返された後、パフォーマンスや場所などに基づいてプロキシにフラグを付けたいと思います。curl_getinfo()を試しましたが、そのcurlハンドルに使用されているプロキシに関する情報が返されません。

何か案は?特定のハンドルを識別し、それを使用するプロキシで保存する方法を考えました。ハンドルが起動してcurl_multi_info_read()を介して戻ってきたら、プロキシを介してハンドルを検索できます。ただし、識別子として何を使用するかはわかりません。ダンプを実行すると、ハンドルがresource(20)として表示されますが、それが信頼できるものかどうかわかりませんか?

getOpt()のようなものがあれば理想的だと思いますが、私が行った調査では、カールハンドルにそのようなものは見当たりません。

0 投票する
1 に答える
1484 参照

php - マルチカールによるリンクチェック

リンクにコード200/301/302があるかどうかをチェックするリンクチェッカー関数を作成しています。

約1000のリンクを確認したいので、Multi-CURL機能を使用しましたが、すべてのヘッダー、コード、URLのリダイレクト先のURLを取得しています。

問題は、Multi-CURLが並行して実行され、すべてのURLがcurl_multi_add_handleに追加され、取得した結果が返され、残りは無視されることです。

ヘッダーからどの結果が返されたかはわかりますが、どのURLがそれをもたらしたかはわかりません。特定の実行されたハンドルに対して要求したURLはありますか(curl_multi_info_readと関係がある可能性があります)?

ここに私のコード:

Help.Thanxに感謝します。

0 投票する
2 に答える
539 参照

php - このcURLスクリプトをリファクタリングして、PHPのcurl_multi関数を利用するにはどうすればよいですか?

PHPアプリでcURLを使用してRESTfulAPIに接続しています。ただし、最近、cURL接続を並列化していないことがわかりました。そのため、複数の連続した接続を実行すると、エンドユーザーに極端な遅延が発生します。

私はcurl_multi以前に使用したことがなく、ドキュメントを読んだ後、ちょっと途方に暮れています。curl_multiの並列化を利用するために、次のコードをリファクタリングするにはどうすればよいですか?

編集:ここで使用されているAPIをオープンソース化したことを忘れました。これらは私自身のDirectedEdgePHPバインディングです。したがって、必要に応じて、ここでのヘルプをGitHubのコードにマージして、寄稿者としてリストすることもできます。

これが私がクライアントコードで行っていることの例です:

そしてここに関連する機能がありますDirectedEdgeRest()

0 投票する
1 に答える
811 参照

php - curl_multi() の使用はまだシリアルですか? もしそうなら、どうすれば並列化できますか?

curl_multi()の希望は cURL リクエストを並列化することでした。

私のコードはまだシリアルですか?もしそうなら、どうすれば並列化できますか?

関連するコードは次のとおりです。

0 投票する
2 に答える
950 参照

php - クイック ロギング リクエスト

48 個の cURL マルチハンドルを作成する PHP スクリプトをテストしようとしています。それぞれが約 1500 のリクエストを保持し、すべて並行して実行されます。すべてのリクエストが実際に送信されていることを確認しようとしています。そのために、サーバーにリクエストを記録しています。これが私のスクリプトでリクエストを行う私のdump.phpであり、リクエストをファイルに記録します:

ただし、クアッド コア PC が 10 秒ごとに約 1500 のレートでこれらの要求を起動できるというわずかな問題があり、ファイルを同時に開こうとするため、サーバーが過負荷になる可能性があります。各リクエストの送信間に 0.1 秒の遅延を設定しましたが、私のサーバーは、次のリクエストが到着する前にファイルを開いたり、テキストをダンプしたり、閉じたりすることはまだできないと思います。その結果、PHP ファイルには約 72k のリクエストが送信されたことが示されていますが、私のサーバーでは約 14k しか受信されていません。これは、PHP プログラムが PC またはポート システムに過負荷をかけていることが原因である可能性があり、一部のリクエストが正常に送信されなかったか、サーバーが 1 秒間に 150 リクエストを処理するほど高速ではありません。

すべてのリクエストが送信されたことを安全に知るための解決策はありますか? 私のクライアントがスクリプトを使用する場合、要求の少なくとも 99.5% が実際に送信されることが不可欠であり、彼のサーバーはそれを問題なく処理するのに十分強力です。セキュリティ上の理由から彼のサーバーでテストすることはできませんが、私のサーバーは動作条件をシミュレートするのに十分強力ではありません.

0 投票する
1 に答える
454 参照

php - 配列を分解し、配列内のデータの各ビットの実行タイムスタンプを追加しますか?

curl_multiを使用して、3つのURLをロードし、配列を出力しました。

1)各URLがいつ実行されたかを知らせるために、出力にタイムスタンプを設定するにはどうすればよいですか?

2)「配列([0] =>」、「[1] =>」、「[2] =>」、「)」というテキストを除いて、データとタイムスタンプのみを表示するように配列を分解するにはどうすればよいですか?

コード

出力

優先出力

0 投票する
1 に答える
4788 参照

php - php multi curl multi get request、multi post request

乱数を生成する特定のWebページに対して複数のGETリクエストを作成してから、その特定の番号を使用して複数のPOSTリクエストを作成する必要があります。これまでのところ、私はこのコードを持っています:functions.php

およびsend.php

ただし、いくつかの理由で、期待した結果ではなく、このエラーが発生します

「0」フィールド配列は、「1」のような「完了」応答を返しません。

0 投票する
2 に答える
872 参照

php - PHP curl_multi_getcontent の部分的な本文を受け取りました

私はこの問題に苦労しています。

私がフェッチしている本文は、3100 文字という大きなものではありません。サーバーの Apache ログには、コンテンツの長さが 3100 であると記録されています。ただし、curl_multi_getcontent によって返される文字列は 1290 文字に短縮されていました。

通常、curl_multi_getcontent() は正常に動作しますが、時々、この奇妙な動作が発生します。

何か案は?

0 投票する
2 に答える
3403 参照

php - PHP curl_multi_exec が 1 回実行されます

PHP の curl_multi_exec を使用して複数の xml リクエストを作成できません。

問題は、curl_multi_exec コマンドを含む do...while ループが 1 回だけ実行され、その後終了することです。

使用したリソース:

http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/ http://php.net/manual/en/function.curl-multi-exec.php/ http:// www.rustyrazorblade.com/2008/02/curl_multi_exec/

私のコードを見てください:

curl を 1 回実行したときに正しい戻りデータを受け取るので、リクエストが有効であることがわかります。問題は curl_multi_exec() にあります。

私が受け取っている出力は、「一度実行」の後に curl_multi_getcontent() 呼び出しの空の配列が続きます。下記参照:

1 回実行した配列 ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => )

どんな助けでも大歓迎です。