2017-11-10 7 views
1

私のサーバ接続のために、いくつかのURLをチェックしようとすると、ホストがターゲットサーバに到達できませんでした。いったん届かないと、PHPがちょうど立ち往生したものを返さなかった。私はスタックされている場合、接続を殺すことができるようにPHPファイルのどこにKILLコマンドを追加したいと思います。特定の時間の後に接続を切断するとにかくありますか?またはこの問題を解決するためのifコマンドまたは他のコマンド私はこのコマンドを、ヘッダコマンドtimeout -s KILL 10を実行する前に追加したいと思います。php_header関数がハングしている場合にkillする

私のコードは次のとおりです。

<?php 

function UR_exists($url){ 
    $headers=get_headers($url); 
    return stripos($headers[0],"200 OK")?true:false; 
} 

if(UR_exists("https://www.uni-hohenheim.de/fileadmin/einrichtungen/apo/Hauptseminar_Agraroekonomie_12/Simeon_Ehui_World_Bank.pptx")) 
    echo "file exists"; 
else 
    echo "file does not exist"; 

?> 

答えて

1

そうな、より良いだけではなく、アラーム+殺すを設定しようとするよりも、タイムアウトを設定します。タイムアウトを設定すると、作業が簡単になります。

Setting get_headers() timeoutには、これを行う方法に関する詳細が記載されています。

+0

私はすでに、私はnginxのとPHP-FPMを持っており、それが – danone

1
$original_default_context = stream_context_set_default(["http" => ["timeout" => 10]]); 
$headers = get_headers($url); 
stream_context_set_default($original_default_context); 

これは10秒間ハングし、次に接続を強制終了します。

+0

動作しない、このソリューションを試してみました<?phpの 関数UR_exists($ URL){ $ original_default_context = stream_context_set_default([ "HTTP" => [ "タイムアウト" => 10]]); $ headers = get_headers($ url); stream_context_set_default($ original_default_context); return stripos($ headers [0]、 "200 OK")?true:false; } if(UR_exists( "https://www.uni-hohenheim.de/fileadmin/einrichtungen/apo/Hauptseminar_Agraroekonomie_12/Simeon_Ehui_World_Bank.pptx")) 「ファイルが存在します」というエコー。 else エコー "ファイルが存在しません"; ?> 私はこれのように使用され、まだ固執していないし、私が殺すのを待っている – danone

関連する問題