ホームページ > バックエンド開発 > PHPチュートリアル > file_get_contents が空を返す、または関数が利用できない場合の解決策_PHP チュートリアル

file_get_contents が空を返す、または関数が利用できない場合の解決策_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-21 15:03:54
オリジナル
1042 人が閲覧しました

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');

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327815.html技術記事 file_get_contents を使用してリモート ファイルの内容を取得し、結果が空であるか、関数が使用できない場合は、この記事が役立つかもしれません。 file_get_contents と fopen を使用して、allow_ur を開きます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート