Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh Mendapatkan Hanya Pengepala dalam PHP menggunakan cURL?

Bagaimanakah saya boleh Mendapatkan Hanya Pengepala dalam PHP menggunakan cURL?

Patricia Arquette
Patricia Arquetteasal
2024-11-10 12:02:02724semak imbas

How can I Retrieve Only Headers in PHP using cURL?

Penemuan Pengepala Sahaja melalui cURL dalam PHP

Artikel ini menangani dua pertanyaan mengenai penggunaan cURL dalam PHP untuk mendapatkan pengepala sahaja dan bukannya data halaman penuh, memfokuskan pada kecekapan pemprosesan dan pelaksanaan khusus cabaran.

Kecekapan Pemprosesan

Ya, terdapat pengurangan dalam kedua-dua kuasa pemprosesan dan penggunaan lebar jalur pada pelayan jauh apabila hanya mendapatkan pengepala berbanding dengan mengambil keseluruhan halaman. Ini kerana pelayan boleh mengelakkan overhed menjana dan menghuraikan kandungan HTML, menghasilkan beban yang lebih ringan.

Mendapatkan Tarikh Pengubahsuaian Fail

Untuk mendapatkan semula yang terakhir diubah suai tarikh (pengepala Terakhir Diubah Suai) atau pengepala If-Modified-Sejak fail jauh, langkah berikut boleh diambil:

<?php
class URIInfo
{
    public $info;
    public $header;
    private $url;

    public function __construct($url)
    {
        $this->url = $url;
        $this->setData();
    }

    public function setData()
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $this->url);
        curl_setopt($curl, CURLOPT_FILETIME, true);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, true);
        $this->header = curl_exec($curl);
        $this->info = curl_getinfo($curl);
        curl_close($curl);
    }

    public function getFiletime()
    {
        return $this->info['filetime'];
    }
}

$filetime = (new URIInfo('http://www.example.com/file.xml'))->getFiletime();
if ($filetime != -1) {
    echo date('Y-m-d H:i:s', $filetime);
} else {
    echo 'filetime not available';
}
?>

Pendekatan ini menggunakan kelas untuk merangkum fungsi untuk mengambil maklumat pengepala dan mengekstrak pengepala Terakhir Diubah Suai.

Cabaran Pelaksanaan

Kod asal yang anda berikan cuba mendapatkan tarikh pengubahsuaian terakhir menggunakan curl_getinfo($header), iaitu tak betul. curl_getinfo() harus digunakan dengan pemegang cURL ($curl) untuk mendapatkan maklumat pengepala. Tambahan pula, penggunaan CURLOPT_FILETIME sepatutnya mencukupi untuk mendapatkan tarikh terakhir diubah suai.

Kesimpulannya, perolehan pengepala sahaja menggunakan cURL dalam PHP berpotensi mengurangkan beban pelayan sambil membenarkan anda mengakses maklumat pengepala tertentu. Dengan mengikut garis panduan yang digariskan di atas, anda boleh melaksanakan ciri ini dengan berkesan dalam kod anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh Mendapatkan Hanya Pengepala dalam PHP menggunakan cURL?. 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