ホームページ >php教程 >php手册 >phpcurlが301または302によってリダイレクトされたURLを取得する問題の解決策

phpcurlが301または302によってリダイレクトされたURLを取得する問題の解決策

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-21 08:53:501039ブラウズ

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 に習熟していない人にとって、英語は本当に頭の痛い問題です。
解決策は実際には非常に簡単です。直接管理者にログインして

、「PHP SafeMode Configuration」を見つけます -->下の図を見てください



デフォルトの

Default Safe



Default Open BaseDir

OFF

に設定します。問題は解決しました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。