問題タブ [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.
php - PHP cURL プロキシとポストの問題
アカウントがまだ有効で機能しているかどうかを確認できるスクリプトを作成しています。私はこの機能を使用しています:
ここに trying.php があります:
問題は、これをクラック関数に対して行うと、完全に機能することです:
この ^^^ の結果は次のとおりです。
mnop は有効なパスワードである可能性があります
しかし、その部分から // を削除してコメントを外すとすぐに:
curl_setopt($ch[$i], CURLOPT_PROXY, $proxy);
すべてがうまくいかず、これが結果です。
ここに wordlist.txt があります:
ここに proxylist.txt があります:
誰か助けてください??? 私はこのために一生懸命努力しましたが、コード全体を作成するのに長い時間がかかりました.
php - ローカルホストでcurl_multiが正しく機能しないのはなぜですか?
php関数を使用して、1000を超えるWebサイトのステータスを返します(つまり、Webサイトがアップまたはダウンしています)。
私が使用している間curl_multi
、しかしこのプロセスの時間は長いです。この目的で並列処理を行うにはどうすればよいですか。
php - PHP curl_multi_exec を理解する
curl_multi_exec を理解しようとしています。ここにマニュアルの例の一部をコピーしました。だから私は疑問に思っています、それはどのように機能しますか?最初のループは、私が推測する http 要求を送信しますか? しかし、その後、一見文書化されていないフラグを持つ関数を使用して、ループ内のループが続きます..
+=70 個の URL +=を並行してダウンロードしたいと考えています。
php - コマンドを2回実行するArduinoクライアント+ PHP cURLサーバー
このプロジェクトでは、単一の PHP サーバーから複数の Arduino (Arduino コア + ENC28J60 イーサネット + x4 リレー アクチュエータ) モジュールにコマンドを実行して、任意の Arduino モジュールでリレーをアクティブにします。サーバーにはすべてのイベントのリストがあり、それぞれのイベントが適切なタイミングで実行されます。問題は、コマンドが 4 分以上 (つまり、5 分以上) 離れている場合、コマンドが Arduino によって 2 回実行されることです。つまり、Arduino は、私が命令したリレーを 2 回連続でアクティブにします。
コードの内容は次のとおりです。 1. thor.php が 1 回直線的に実行されます (タスクは crontab によって繰り返されます) 2. thor.php はその配列内で現在の時間に発生するイベントの発生を検索します 3. for発生するたびに、curl マルチ ハンドラに配信されるタスクが生成されます。 4. すべてのタスクは、各 arduino モジュールに並行して送信されます。5. Arduino がリクエストを受信すると、それが既知の IP アドレスから許可されたポート経由で送信されているかどうかを確認し、パラメータ内のコマンドを分析して、リクエストに応じてリレーをアクティブにします。6. Arduino は、後で制御のために機能する隠しフィールドを含む応答ページを送信します。
理論上はすべて正常に動作しますが、コマンドが 5 分以上離れている場合、Arduino はコマンドを 2 回実行します。
次にコード全体を置きます。これがArduinoです:(スペイン語のコメントを許してください)
トール.php:
thorconfig.php
common.php:
4分以内にコマンドを実行し、それ以外の場合は2回実行すると、1回だけ実行される理由はありますか?
編集: PHP コードにある問題を破棄しました。サーバーに lynx テキスト ブラウザーをインストールし、コマンドを 5 分以上間隔をあけて手動で実行しましたが、同じ結果が得られました: Arduino からの重複したアクションです。誰かがそれに興味を持ち、使用する可能性がある場合に備えて、PHP コードを残します。解決策を見つけるために実験を続けます。
編集 2: Arduino ハードウェアにある問題を破棄しました。すぐに使用できる新しい Arduino Uno (同じモデル) を同じコードでテストしましたが、それでも同じバグがありました。
編集 3: 単なるアイデアです。PHPサーバーが即時の応答を期待しており、Arduinoからすぐに応答が得られないため、パケットを再度送信して、Arduinoから二重の(遅い)応答を受け取る可能性はありますか? ここに別のものがあります:Arduinoがバッファを2回通過していて、それを認識していない可能性はありますか? (2番目のオプションはあまりありそうにないようです)。
php - PHPで複数のcURLからhttpステータスコードを返す
スクリプトが作成する 2 つの並列 cURL リクエストのヘッダー情報から 2 つの http ステータス コードを返そうとしています。これまでのところ、私のスクリプトは以下のとおりで、最後に print_r() が出力されます: Array ( [0] => 200 [1] => )。2 番目のステータス コードが返されない理由がわかりません。前もって感謝します。
php - マルチ CURL リクエストでランダムに 500 エラーが発生する
Bootstrap Typeahead を入力するために、curl_multi を介して Web サービスから hal+json データを取得しようとしています。このコードを実行するたびに、curl_multi の一部のリクエストは 500 になり、一部は必要なデータを返します。500 は完全にランダムです。次回ページをロードすると、代わりに別のクエリが 500 になります (エラーは発生しません)。なぜそれが起こり続けるのですか?
そして、これはhttp://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/に基づく singleRequest と multiRequest のコードです:
編集エラーチェックを追加
php - PHPカールマルチエラーハンドラ
echo
エラーハンドラーでカールエラーと警告をキャプチャして、ユーザーに表示されないようにしたいと考えています。すべてのエラーがキャッチされたことを証明するため$err_start
に、エラーの先頭に文字列を追加します。現在、ここに私のコードの動作中の(ただし簡略化された)スニペットがあります(cliではなくブラウザで実行してください):
私の完全なコードには複数のリクエストが並行して含まれていることに注意してください。また、このコード スニペットに示されているエラー ハンドラは非常に基本的なものであることに注意してください。実際のエラー ハンドラは、警告や通知によって終了することはないので、これについて教えてもらう必要はありません。
現在ダウンしているホストをカールしようとすると、カールエラーが正常にキャプチャされ、スクリプトが次のように終了します。
ただし、次の警告はエラー ハンドラー関数によってキャッチされずecho
、ページに追加されています。
後で検査するためにログに記録できるように、エラーハンドラーでこの警告をキャプチャしたいと思います。
私が気づいたことの 1 つは、curl コードが関数内にある場合にのみ警告が表示されることです。コードが最高のスコープ レベルにある場合は発生しません。curl グローバルの 1 つ (例: CURLM_OK
) が関数のスコープ内でアクセスできない可能性はありtest_curl()
ますか?
私はPHPバージョン5.3.2-1ubuntu4.19を使用しています
編集
- エラーを完全に示すためにコード スニペットを更新しました
- キャプチャされていない警告は、関数またはクラス メソッド内でのみ表示されます。
curl - libcurl NXDOMAIN がタイムアウトを引き起こす
私のアプリの libcurl は、「NXDOMAIN」リクエスト (CURLOPT_CONNECTTIMEOUT と一致するようです) で最低 7 ~ 20 秒留まるため、存在しないドメインで問題があるようです。
pmp (貧乏人のプロファイラー) の出力は次のとおりです。
コマンドにcurl
はこの問題はないようです。同じリクエストを 1 秒以内に完了します。
質問はこれに関連している可能性があります.1つの問題を解決して別の問題に終わったようです.それが最後のubuntuの更新後かそれ以前かはわかりません.
私のプロジェクトのlibcurlコードは次のとおりです。
ソースからlibcurl v7.30をビルドし(c-aresを使用し、ipv6なし)、ubuntu 12.10リポジトリバージョンにインストールしました(オーバーライドされているかどうかはわかりませんが、使用しましたmake install
)。
最後の自動更新の後、エラーが発生しましたが、それが関連しているかどうかはわかりません。
php - PHP は集中型の curl_multi リクエストをどのように行うことができますか?
現在、外部 API をポーリングするために curl_multi を利用して、PHP で書かれた Web サイトを持っています。サーバーは、子プロセスを Web 要求からスタンドアロンにフォークし、正常に動作していますが、プロセスごとに多少制限されています。
場合によっては、帯域幅のボトルネックにぶつかり、より優れた集中キューイング ロジックが必要になります。
私は現在、すべての発信リクエストを処理するスタンドアロンのバックグラウンド プロセスを備えた PHP IPC を試していますが、普通のプログラマーには対応できないと通常言われていることに行き詰まっていました。ガベージコレクション、プロセス間例外処理、リクエストとレスポンスのマッチングなど...間違った方向に進んでいますか?
そこに一般的な慣行(実装理論)はありますか、それとも私が利用できるライブラリはありますか?
編集
ローカルホストの TCP/IP 通信を使用すると、ローカル トラフィックの負荷が 2 倍になるため、これは明らかに適切な方法ではありません。
私は現在、いくつかの自作プロトコルを使用して IPC メッセージキューに取り組んでいます...まったく正しくありません。助けていただければ幸いです。
php - RAM をあまり消費しないボットを作成するには?
私は Web ボットを持っていますが、メモリを大量に消費します。しばらくすると、メモリ使用量が 50% に達し、プロセスが強制終了されます。なぜそんなにメモリ使用量が増えているのかわからないので、並列curlリクエスト用のライブラリである「para.php」を入れていませんでした。Web クローラーについてもっと知りたいと思い、いろいろ検索しましたが、役立つドキュメントや使用できる方法が見つかりませんでした。
これは、私が para.php を取得したライブラリです。
私のコード: