一部のホスティング サービス プロバイダーは PHP のallow_url_fopen オプションをオフにしています。これは、file_get_contents を直接使用してリモート Web ページのコンテンツを取得できないことを意味します。つまり、別の関数curlを使用できます。 以下は、file_get_contents とcurl の 2 つの関数の同じ関数を別の方法で記述したものです file_get_contents関数の使用例: < ?php 代わりにcurl関数を使用する例: < ?php ?> function vita_get_url_content($url) {
$file_contents = file_get_contents(http://www.ccvita.com/);
echo $file_contents;
?>
$ch =curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, http://www.ccvita.com);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents =curl_exec($ch);
curl_close($ch);
function_exists 関数を使用して、php が関数をサポートしているかどうかを判断すると、次の関数を簡単に作成できます
if(function_exists(file_get_contents)) {
$file_contents = file_get_contents($url);
} else {
$ch =curl_init();
$timeout = 5;
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;
}
?>
実際、ホスティング サービス プロバイダーが file_get_contents とcurl の両方をオフにしている場合、上記の関数はエラーを引き起こします。