Mendapatkan URL Sebenar Selepas Ubah Hala dengan file_get_contents
Apabila menggunakan file_get_contents() untuk mengambil kandungan tapak web, anda mungkin menghadapi situasi di mana URL yang disediakan mengubah hala ke lokasi lain. Dalam kes sedemikian, adalah perlu untuk mendapatkan URL sebenar selepas ubah hala.
Mengendalikan Lencongan dengan file_get_contents()
Menggunakan file_get_contents() secara lalai mengikuti ubah hala. Untuk mengelakkan ubah hala automatik, anda boleh menggunakan konteks strim tersuai. Dengan menetapkan pilihan 'follow_location' kepada palsu, anda boleh melumpuhkan ubah hala automatik.
<code class="php">$context = stream_context_create( array( 'http' => array( 'follow_location' => false ) ) ); $html = file_get_contents('http://www.example.com/', false, $context);</code>
Mengakses URL Sebenar
Selepas melumpuhkan ubah hala automatik, anda boleh mendapatkan semula URL sebenar daripada tatasusunan 'http_response_header'. Pengepala ini mengandungi pelbagai butiran respons HTTP, termasuk lokasi halaman diubah hala.
<code class="php">var_dump($http_response_header);</code>
Dengan mencetak 'http_response_header', anda boleh mencari pengepala 'Lokasi' dalam tatasusunan. Nilai pengepala ini akan menunjukkan URL sebenar selepas ubah hala.
Inspirasi
Penyelesaian ini diilhamkan oleh perbincangan Stack Overflow: [Bagaimanakah saya mengabaikan pengepala bergerak dengan file_get_contents dalam PHP?](https://stackoverflow.com/questions/7253653/how-do-i-ignore-a-moved-header-with-file-get-contents-in-php)
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan URL Sebenar Selepas Pengalihan dengan file_get_contents() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!