php では、file_get_contents 関数はリモート サーバーのコンテンツを直接収集し、それを変数に保存できます。メディエーターは通常、DDOS であることを恐れるため、file_get_contents や fsockopen などの一部の IO 操作関数を無効にします。一般に、サーバーの inc.php を変更することはできません。上記の PHP 関数を置き換える一連の IO を自分で作成することしかできません。
コードは次のとおりです
| コードをコピー
|
$url = file_get_contents('http://www.bKjia.c0m/');
|
代わりに次のコードを使用できます
コードは次のとおりです
| コードをコピー
|
//file_get_contents を無効にする解決策
$ch =curl_init();
$timeout = 10 // タイムアウトなしの場合は 0 に設定します ;
curl_setopt ($ch, CURLOPT_URL,'http://www.hzhuti.com/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch、CURLOPT_CONNECTTIMEOUT、$timeout);
$url =curl_exec($ch);
Curl は、URL 構文を使用してファイルやデータを転送するツールです。HTTP、FTP、TELNET などの多くのプロトコルをサポートしています。サーバーによって無効にされないため、URL を開くための file_get_contents をシミュレートするために使用できます。 。 |
function_exists 関数を使用して、PHP が関数をサポートしているかどうかを判断すると、次の関数を簡単に作成できます
コードは次のとおりです
コードをコピー
|
関数 vita_get_url_content($url) {
if(function_exists('file_get_contents')) {
$file_contents = ファイル_get_contents($url);
} その他 {
$ch =curl_init();
$タイムアウト = 5;
curl_setopt ($ch、CURLOPT_URL、$url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch、CURLOPT_CONNECTTIMEOUT、$timeout);
$file_contents =curl_exec($ch);
カール_クローズ($ch);
}
$file_contents を返す
}
?>
http://www.bkjia.com/PHPjc/632091.html
www.bkjia.com
| true
http://www.bkjia.com/PHPjc/632091.html技術記事 php では、file_get_contents 関数はリモート サーバーのコンテンツを直接収集し、それを変数に保存できます。メディエーターは通常、file_get_contents や fsockopen などの IO 操作関数を使用します...
。