ホームページ  >  記事  >  バックエンド開発  >  file_get_contents によって返されたページの URL を取得する方法はありますか

file_get_contents によって返されたページの URL を取得する方法はありますか

WBOY
WBOYオリジナル
2016-06-23 13:51:241148ブラウズ

file_get_contents を Cookie とともに使用してリモート ページにアクセスすると、ページが別のページにジャンプします。ここで問題は、ジャンプ後のページの URL を取得できるかどうかです。 get_headers を使用すると Cookie やその他のヘッダー情報を取得できることはわかっていますが、URL を取得するにはどうすればよいですか?


ディスカッションに返信 (解決策)

get_headers リダイレクトされた URL を取得することもできます

file_get_contents は、http ヘッダーの指示に従って、新しいターゲット URL に自動的にジャンプします
ターゲット URL にジャンプがある場合、 get_headers の結果には Location 項目があります。
そして get_headers は最終ターゲットも追跡するので、最後の Location 項目の値があなたが望むものになります
うわー

皆さんは元のリンクを知っています。ブラウザで直接開きますが、どのリンクにジャンプするかはわかりません?

file_get_contents は、http ヘッダーの指示に従って、新しいターゲット URL に自動的にジャンプします
ターゲット URL がジャンプすると、get_headers の結果に Location 項目が存在します。
そして get_headers は最終的なターゲットも追跡するので、最後の Location 項目の値が必要になります

$a = get_headers($url, 1);if(isset($a['Location'])) {  $url = is_array($a['Location']) ? array_pop($a['Location']) : $a['Location'];}



しかし、ヘッダー情報に location 項目がないのはなぜでしょうか。実際、私が行っているのはdiscuzの自動投稿です。投稿後、新しい投稿のIDを取得します。

セクションは 200 しかないため、http ジャンプは発生しません
代わりに、投稿ページはフォーム承認ページに直接含まれます
ページのコンテンツを分析して投稿の ID を確認することしかできません
実際、これも非常に簡単です: 返信コードを見つけるだけです

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