ホームページ >バックエンド開発 >PHPチュートリアル >Web ページのコンテンツを取得する PHP CURL の解決策 (IPV6 でのタイムアウト)_PHP チュートリアル

Web ページのコンテンツを取得する PHP CURL の解決策 (IPV6 でのタイムアウト)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:00:48917ブラウズ

理由:
プログラム内で、curlがコンテンツを取得するための厳しいタイムアウト制限を設定しているため、コンテンツを取得できない問題が発生します。

解決策: デフォルトのアクセスを ipv4 に設定します。
phpのcurl設定方法は以下の通りです:

コードをコピー コードは以下の通りです:

/**
* IPV6 でのカールのタイムアウトの問題
*/
$ch =curl_init() ;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
//curl のデフォルトのアクセスを IPv4 に設定します
if(define('CURLOPT_IPRESOLVE') && Definition('CURL_IPRESOLVE_V4') )){
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}
//curl が接続を要求するときの最大秒数を設定します。0 に設定すると、無限になります。 timeout);
//curl が合計アクションを実行する最大秒数を設定します。0 に設定すると長い秒数、無限になります
curl_setopt ($ch, CURLOPT_TIMEOUT,$timeout*3);
$file_contents =curl_exec($ch) );
curl_close($ch);


注: curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4) 上記の設定は、php バージョン 5.3 以降、curl バージョン 7.10.8 以降の場合にのみ有効です。

http://www.bkjia.com/PHPjc/328038.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/328038.html技術記事理由: プログラム内で、curl がコンテンツを取得する際のタイムアウト制限を厳密に設定しているため、コンテンツが取得できない問題が発生します。 解決策: デフォルトのアクセスを ipv4 に設定します。 php...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。