理由:
プログラム内で、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.comtruehttp://www.bkjia.com/PHPjc/328038.html技術記事理由: プログラム内で、curl がコンテンツを取得する際のタイムアウト制限を厳密に設定しているため、コンテンツが取得できない問題が発生します。 解決策: デフォルトのアクセスを ipv4 に設定します。 php...