Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mendapatkan URL Akhir Selepas Ubah Hala Apabila Menggunakan file_get_contents() dalam PHP?

Bagaimanakah Saya Boleh Mendapatkan URL Akhir Selepas Ubah Hala Apabila Menggunakan file_get_contents() dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 09:52:29227semak imbas

How Can I Get the Final URL After Redirects When Using file_get_contents() in PHP?

File_Get_Contents: Membongkar URL Akhir

Masalah: Semasa mengikis kandungan menggunakan file_get_contents(), anda menghadapi ubah hala tetapi ingin mendedahkan URL sebenar .

Penyelesaian:

Walaupun file_get_contents() biasanya mengendalikan ubah hala, jika anda memerlukan kawalan secara eksplisit, gunakan pendekatan berikut:

<code class="php">// Disable automatic redirect following
$context = stream_context_create([
    'http' => [
        'follow_location' => false
    ]
]);

// Retrieve the content with no redirects
$html = file_get_contents('http://www.example.com/', false, $context);

// Access the HTTP response headers to determine the actual URL
var_dump($http_response_header);</code>

Oleh menetapkan 'follow_location' kepada false, anda menghalang file_get_contents() daripada mengikuti ubah hala secara automatik. Pengepala respons (tersedia dalam $http_response_header) akan mengandungi pengepala "Lokasi", yang menunjukkan URL sebenar selepas sebarang ubah hala.

Petua: Pendekatan ini diilhamkan oleh penyelesaian yang disediakan dalam How do Saya mengabaikan pengepala bergerak dengan file_get_contents dalam PHP?

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan URL Akhir Selepas Ubah Hala Apabila Menggunakan file_get_contents() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn