PHPのcurlを使用してリモートファイルを取得する場合、コードは次のようになります:
コードをコピー コードは次のようになります:
$ghurl = isset($_GET["id"]) ? $_GET["id"]:"http://www.baidu.com/"; >function getContents($url ){
$header = array("参照元: http://www.baidu.com/");
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);ジャンプ後のページをクロールします。
curl_exec($ch);
ob_end_clean($ch); >
return $contents;
$contents($ghurl);
一般的に言うと、win2003+iis では、php_curl.dll を設定すれば問題ありません。
ただし、作成者は linux+apahe2.0+php5.2.12+directadmin を使用しています (通常、外国のホスティング会社はこの構成を使用します)。取得した URL に 301/302 ジャンプがある場合、エラーが報告されます。 🎜>
curl_setopt() [function.curl-setopt]: セーフモードの場合、または ***
に open_basedir が設定されている場合、CURLOPT_FOLLOWLOCATION をアクティブにすることはできません
この問題については、Google と Baidu が長い記事でまとめていますLinux に習熟していない人にとって、英語は本当に頭の痛い問題です。
解決策は実際には非常に簡単です。直接管理者にログインして
を
OFFに設定します。問題は解決しました。