ホームページ バックエンド開発 PHPチュートリアル php get_headers は、戻り値が 200 で、存在しないスクリプト実行タイムアウトが発生したかどうかを判断します。

php get_headers は、戻り値が 200 で、存在しないスクリプト実行タイムアウトが発生したかどうかを判断します。

Jun 13, 2016 pm 01:21 PM
out quot timeout url

php get_headers は、戻り値が 200 であるかどうかを判断します。存在しないスクリプト実行タイムアウト
と存在しない IP アドレスが発生した場合、関数がタイムアウトするまで応答を待ちます。これにより、ページが遅延し、表示できません。

ストリームを開けませんでした: HTTP リクエストが失敗しました!
致命的なエラー: 最大実行時間 30 秒を超えました

Set ini_set('max_execution_time', 10);
この関数を使わずに自分でソケットを書いてみませんか? 面倒なので他に良い方法はありますか?



--- ---解決策- ------------------

ディスカッション
彼に常に実行させることはできません。最大 5 秒間実行してから停止させることはできますが、間違えないでください。 🎜>

------解決策---------

話し合う
こんにちは、csdn は遅くて古いことが判明しました。応答が出てから長い時間が経ちました。

しばらくお待ちください。 5 秒です。いいえ、結果を取得する必要はありません。次の値を直接判断するだけです。
set_time_limit(5) このように使用すると、プログラムは直接停止します


------解決策------------------
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )最後のパラメータ $ Set timeout を 5 に設定すると、最大接続時間を 5 秒に設定します。期限切れの関数は戻り、プログラムは終了しません。

------解決策------------------
PHP の get_headers 関数は完璧ではないとしか言​​えません。 自分にポイントを与えることができないので、次のとおりです。完全なコードは他の人にも使用できます。

PHP コード
。 関数 DoGet($url) { $url2 = parse_url($url); if(!isset($url2['path']))$url2['path']=''; $url2["パス"] = ($url2["パス"] == "" ? "/" : $url2["パス"]); $url2["ポート"] = (isset($url2["ポート"])?$url2["ポート"]:80); $host_ip = @gethostbyname($url2["host"]); $fsock_timeout =2 //2秒; if(!($fsock = fsockopen($host_ip, $url2["port"], $errno, $errstr, $fsock_timeout))) { // エコー 'fsockopen 失敗'; false を返します。 } $request = $url2["パス"] .(isset($url2["クエリ"]) ? "?".$url2["クエリ"] : ""); $in = "GET " . $request "; $in .= "受け入れる: */*rn"; $in .= "ユーザーエージェント: Payb-Agentrn"; $in .= "ホスト: " . $url2["ホスト"] . $in .= "接続: 閉じるrnrn"; stream_set_timeout( $fsock , $fsock_timeout ) ; if(!@fwrite($fsock, $in, strlen($in))){ //エコー 'fwrite 失敗'; fclose($fsock); false を返します。 } $status = stream_get_meta_data( $fsock ); // データ送信タイムアウト if($status['timed_out'] ) { // エコー "書き込みタイムアウト" ; fclose( $fsock ); false を返します。 } $out = null; while($buff = @fgets($fsock, 2048)) { $out .= $buff; //ヘッダー情報のみを読み取る if(false!==strpos($out, "rnrn"))break; } $status = stream_get_meta_data( $fsock ); // データ読み取りタイムアウト if( $status['timed_out'] ) { // エコー「読み取りタイムアウト」 ; fclose( $fsock ); false を返します。 } fclose($fsock); $pos = strpos($out, "rnrn"); $head = substr($out, 0, $pos); //http ヘッド $head を返します。 } $rs= DoGet("http://www.ba05afasdfsiddf08usfa.com"); if(!$rs)echo '失敗'; それ以外の場合は $rs;
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します Jul 25, 2023 am 09:05 AM

PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報の取得の概要: PHP 開発では、Web ページまたはリモート リソースの応答ヘッダー情報を取得する必要があることがよくあります。 PHP 関数 get_headers() を使用すると、対象 URL の応答ヘッダー情報を簡単に取得し、配列の形式で返すことができます。この記事では、get_headers() 関数の使用法を紹介し、関連するコード例をいくつか示します。 get_headers() 関数の使用法: get_header

Nginx タイムアウトのタイムアウトを設定する方法 Nginx タイムアウトのタイムアウトを設定する方法 May 12, 2023 pm 10:07 PM

keepalive_timeouthttp にはキープアライブ モードがあり、リクエストの処理後に TCP 接続を開いたままにするよう Web サーバーに指示します。クライアントから他のリクエストを受信した場合、サーバーは別の接続を確立せずに、この閉じられていない接続を使用します。 httpkeep-alive、Web ページ上のすべてのリクエストは http (画像、CSS など) であり、http リクエストを開くには、まず TCP 接続を確立する必要があります。ページがリクエストごとに TCP 接続を開いたり閉じたりする必要がある場合keepalive_timeout の無駄は、http リクエストが完了しても、その TCP 接続が維持されることです。

いくつかの手順で Steam ID を取得するにはどうすればよいですか? いくつかの手順で Steam ID を取得するにはどうすればよいですか? May 08, 2023 pm 11:43 PM

現在、ゲームを愛する多くの Windows ユーザーが Steam クライアントにアクセスし、優れたゲームを検索、ダウンロードしてプレイすることができます。ただし、多くのユーザーのプロフィールがまったく同じ名前である可能性があるため、プロフィールを見つけたり、Steam プロフィールを他のサードパーティのアカウントにリンクしたり、Steam フォーラムに参加してコンテンツを共有したりすることさえ困難になります。プロファイルには一意の 17 桁の ID が割り当てられます。ID は変更されず、ユーザーがいつでも変更することはできませんが、ユーザー名またはカスタム URL は変更できます。いずれにせよ、一部のユーザーは自分の Steamid を知らないため、これを知ることが重要です。アカウントの Steamid を見つける方法がわからなくても、慌てる必要はありません。記事上で

e からの NameResolutionError(self.host, self, e) の理由とその解決方法 e からの NameResolutionError(self.host, self, e) の理由とその解決方法 Mar 01, 2024 pm 01:20 PM

エラーの理由は、urllib3 ライブラリの例外タイプである NameResolutionError(self.host,self,e)frome です。このエラーの理由は、DNS 解決が失敗したこと、つまり、ホスト名または IP アドレスが試みられたことです。解決できるものが見つかりません。これは、入力された URL アドレスが間違っているか、DNS サーバーが一時的に利用できないことが原因である可能性があります。このエラーを解決する方法 このエラーを解決するにはいくつかの方法があります。 入力された URL アドレスが正しいかどうかを確認し、アクセス可能であることを確認します。 DNS サーバーが利用可能であることを確認します。コマンド ラインで「ping」コマンドを使用してみてください。 DNS サーバーが利用可能かどうかをテストします。プロキシの背後にある場合は、ホスト名の代わりに IP アドレスを使用して Web サイトにアクセスしてみてください。

Java で URL エンコードとデコードを使用する方法 Java で URL エンコードとデコードを使用する方法 May 08, 2023 pm 05:46 PM

url を使用して、クラス java.net.URLDecoder.decode(url, decoding format) decoder.decoding メソッドのエンコードとデコードをエンコードおよびデコードします。通常の文字列に変換するには、URLEncoder.decode(url, エンコード形式) を使用して、通常の文字列を指定された形式の文字列に変換します。 packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net。 URLエンコーダ

win11のクロックウォッチドッグタイムアウトのブルースクリーンを解決するにはどうすればよいですか? win11のクロックウォッチドッグタイムアウトのブルースクリーンを解決するにはどうすればよいですか? Feb 14, 2024 pm 04:00 PM

Win11 システムをアップグレードした後、多くのユーザーは、クロックウォッチドッグタイムアウト ブルー スクリーンなどのブルー スクリーンを経験します。これを解決するにはどうすればよいでしょうか?ユーザーはドライバーを更新したり、過熱の問題などを確認したりできます。このサイトでは、win11のクロックウォッチドッグタイムアウトのブルースクリーンの解決策をユーザーに丁寧に紹介します。 win11 のクロックウォッチドッグタイムアウト ブルー スクリーンの解決策 1. ドライバーを更新します。CPU とマザーボードのドライバーを更新すると、問題が解決される可能性があります。製造元の Web サイトにアクセスして、最新のドライバーをダウンロードできます。 2. 過熱の問題を確認します。過熱もこのエラーの原因の 1 つである可能性があります。

Vue アプリケーションで axios を使用するときに「エラー: xxxms のタイムアウトを超えました」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用するときに「エラー: xxxms のタイムアウトを超えました」が発生した場合はどうすればよいですか? Jun 24, 2023 pm 03:27 PM

Vue アプリケーションで axios を使用するときに「エラー: timeoutofxxxmsexceeded」が発生した場合はどうすればよいですか?インターネットの急速な発展に伴い、フロントエンド技術は常に更新され、改良が重ねられており、Vue は優れたフロントエンド フレームワークとして近年皆様に歓迎されています。 Vue アプリケーションでは、ネットワーク リクエストを行うために axios を使用する必要があることがよくありますが、「エラー: timeoutofxxxmsexceeded」というエラーが発生することがあります。

マザーボード上のデジタルオーディオ出力インターフェイス - SPDIF OUT マザーボード上のデジタルオーディオ出力インターフェイス - SPDIF OUT Jan 14, 2024 pm 04:42 PM

マザーボード上の SPDIFOUT 接続線の順序 最近、ワイヤの配線順序に関する問題に遭遇しました。ネットで調べたところ、1、2、4がアウト、+5V、グラウンドに相当するという情報もあれば、1、2、4がアウト、グラウンド、+5Vに相当するという情報もありました。最善の方法は、マザーボードのマニュアルを確認することです。マニュアルが見つからない場合は、マルチメーターを使用して測定できます。最初にアースを見つけてから、残りの配線の順序を決定します。マザーボードの VDG 配線の接続方法 マザーボードの VDG 配線を接続するときは、VGA ケーブルの一端をモニターの VGA インターフェイスに差し込み、もう一端をコンピューターのグラフィックス カードの VGA インターフェイスに差し込む必要があります。マザーボードの VGA ポートに差し込まないよう注意してください。接続すると、次のことが可能になります

See all articles