file_get_contents を使用してリモート ファイルの内容を取得し、結果が空であるか、関数が使用できない場合は、この記事が役立つかもしれません。
file_get_contents と fopen を使用するには、allow_url_fopen を有効にする必要があります。方法: php.ini を編集し、allow_url_fopen = On に設定します。allow_url_fopen がオフの場合、fopen も file_get_contents もリモート ファイルを開くことができません。仮想ホストを使用している場合は、代わりにcurl関数の使用を検討してください。
curl関数の使用例:
コードをコピー コードは次のとおりです:
$ch =curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, 'http: //www .jb51.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec($ch);
curl_close($ch);
function_exists 関数を使用して、PHP が file_get_contents をサポートしているかどうかを判断します。それ以外の場合は、代わりにcurl 関数を使用します。
PS
1. ホスティングプロバイダーもカールをオフにしている場合は、別のホスティングプロバイダーに変更する必要があります。
2.allow_url_fopen を off に設定しても、ホストが file_get_content 関数をサポートしないことを意味するわけではありません。リモートファイルを開けません。 function_exists('file_get_contents') は true を返します。そのため、インターネット上で流通している「file_get_contents 機能が利用できない問題の解決策」では依然として問題を解決できません。
エラー コード:
コードをコピー コードは次のとおりです:
if (function_exists('file_get_contents')) {
$file_contents = @file_get_contents($url);
}else{
$ ch =curl_init ();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec( $ch);
curl_close($ch);
}
を次のように変更する必要があります:
コードをコピー コードは次のとおりです:
if (function_exists('file_get_contents' )) {//file_get_contents をサポートするかどうかを決定します
$file_contents = @file_get_contents($url);
}
if ($file_contents == ”) {//$file_contents が空かどうかを決定します
$ch =curl_init();
$タイムアウト = 30;
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec($ch);
curl_close($ch);
}
最終コード:
コードをコピー コードは次のとおりです:
function file_get_content($url) {
if (function_exists('file_get_contents')) {
$file_contents = @file_get_contents($url );
}
if ($file_contents == ”) {
$ch =curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}
使用法:
echo file_get_content( 'http://www.jb51.net');
http://www.bkjia.com/PHPjc/327815.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327815.html技術記事 file_get_contents を使用してリモート ファイルの内容を取得し、結果が空であるか、関数が使用できない場合は、この記事が役立つかもしれません。 file_get_contents と fopen を使用して、allow_ur を開きます...