Στην PHP, η get_headers() δέχεται ένα stream context ως τρίτο όρισμα. Στην PHP 8, ένας έλεγχος κεφαλίδων για διεύθυνση HTTP μπορεί να φέρει τη δική του ρύθμιση διαμεσολαβητή:

$context = stream_context_create([
    'http' => [
        'proxy' => 'tcp://proxy.example.net:8080',
        'request_fulluri' => true,
        'method' => 'HEAD',
        'follow_location' => 0,
        'timeout' => 10,
    ],
]);

$headers = get_headers('http://example.net/file.zip', false, $context);
if ($headers === false) {
    throw new RuntimeException('Header request failed');
}

Ο διαμεσολαβητής είναι ένα τελικό σημείο TCP για τον περιτυλιγτή ροής HTTP. Αντικαταστήστε τον κεντρικό υπολογιστή και τη θύρα-υπόδειγμα με έναν μη πιστοποιημένο υποψήφιο από τη λίστα διαμεσολαβητών HTTP για αυτόν τον δημόσιο έλεγχο HTTP. Η request_fulluri παρέχει το πλήρες URI προορισμού στη γραμμή αιτήματος HTTP, όπως περιμένουν πολλοί διαμεσολαβητές προώθησης. Αυτό το context ανήκει σε αυτή την κλήση· δεν αλλάζει το προεπιλεγμένο context που χρησιμοποιούν άλλες αναγνώσεις URL.

Παρά το όνομα της συνάρτησης, η προεπιλεγμένη μέθοδος αιτήματος είναι GET. Η ρητή μέθοδος HEAD ζητά από τον διακομιστή μεταδεδομένα απόκρισης χωρίς το αντίστοιχο σώμα απόκρισης. Ένας διακομιστής μπορεί να απορρίψει το HEAD ή να το χειριστεί διαφορετικά, επομένως ένας επιτυχής έλεγχος κεφαλίδων δεν αποδεικνύει ότι μια μεταγενέστερη λήψη θα πετύχει.

Εδώ, η ακολούθηση ανακατευθύνσεων είναι απενεργοποιημένη για να εξεταστεί η πρώτη απόκριση. Μια κεφαλίδα Location και μια κατάσταση ανακατεύθυνσης είναι τότε χρήσιμα αποτελέσματα αντί για οδηγία να ανακτηθεί άλλο URL. Αν ο έλεγχος πρέπει να ακολουθεί ανακατευθύνσεις, αλλάξτε αυτή την πολιτική συνειδητά και λάβετε υπόψη τις πρόσθετες κεφαλίδες απόκρισης.

Το όρισμα false διατηρεί έναν ευρετηριασμένο πίνακα κεφαλίδων. Χρησιμοποιήστε το true όταν η συσχετιστική ανάλυση είναι πιο χρήσιμη.

Σχετικά άρθρα