私はスクリプト内get_meta_tags()を使用していますし、特定のURLにそれは(一例として)...get_meta_tags()とリダイレクトの制限に関するエラー処理?
警告でアウト失敗:get_meta_tags(http://www.kodak.com/)[ function.get-meta-tags]:ストリームを開けませんでした:リダイレクトの上限に達しました...
エラーをスローする結果をスキップすることはできますか?あるいは、代わりに@get_meta_tags()を使うべきですか?
function getMeta()
{
$tags = get_meta_tags($this->link); //INSERT INTEGRITY CHECK HERE?
$keywords = $tags['keywords'];
if(count($keywords))
{
preg_match_all('/(?<=^|,)\s*((?:[^\s,]+\s*){1,4})(?=\s*(?:,|$))/', $keywords, $m);
$this->keywords = array_slice($m[1], 0, 15);
}
}
のために正確なものを探しているん。私はその正統的な問題だとは思わないが、その縛られたリンクは完全にうまく整えている(www.kodak.com)、いいえ? – RegEdit
@RegEdit - 「標準的なリンク」とは、「リダイレクトチェーンの最後のリンク」を意味します。あなたがkodak.comに行くと、あなたの場所が検出され、ローカライズされたサイトにリダイレクトされ、それから別の場所にリダイレクトされる可能性があります。正規のリンクは、最終ページに移動したときに最終的にブラウザに表示されるURLです。基本的には、リダイレクトを制限し、リダイレクト制限に達するのを止め、エラーが投げられないようにすることを指示しています。あなたがそれを行うことができない場合は、次の最良の選択肢は、単にエラーを無視することです。 – AgentConundrum
@RegEdit - スクリーンスクレイピングでURLを引っ張っている場合、リダイレクトについてはほとんどできませんので、おそらく '@'を使用する必要があります。他の唯一のオプションは 'set_error_handler()'を使って独自のエラーハンドラをセットアップしてエラーを例外に変換し、try-catchブロックで 'get_meta_tags()'コールを実行してキャッチをチェックして、リダイレクトの上限に達しました。これは、エラー抑制演算子を使用するのとほぼ同じですが、抑制したいエラーを抑制するだけのボーナスが追加されています。それはここで非常に過度の可能性があります。 – AgentConundrum