PHP-এর get_headers() তার তৃতীয় আর্গুমেন্ট হিসেবে একটি stream context গ্রহণ করে। PHP 8-এ একটি HTTP URL-এর জন্য হেডার পরীক্ষা নিজস্ব প্রক্সি কনফিগারেশন বহন করতে পারে:

$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');
}

প্রক্সিটি HTTP stream wrapper-এর জন্য একটি TCP এন্ডপয়েন্ট। এই পাবলিক HTTP পরীক্ষার জন্য এর প্লেসহোল্ডার হোস্ট ও পোর্ট HTTP প্রক্সি তালিকা থেকে একটি অনুমোদনহীন প্রার্থী দিয়ে প্রতিস্থাপন করুন। request_fulluri HTTP অনুরোধ লাইনে সম্পূর্ণ গন্তব্য URI সরবরাহ করে, যা অনেক ফরওয়ার্ড প্রক্সি আশা করে। এই context এই কলের অন্তর্গত; এটি অন্য URL পাঠে ব্যবহৃত ডিফল্ট context পরিবর্তন করে না।

ফাংশনের নাম সত্ত্বেও, এর ডিফল্ট অনুরোধ পদ্ধতি GET। স্পষ্ট HEAD পদ্ধতি সার্ভারের কাছে সংশ্লিষ্ট রেসপন্স বডি ছাড়াই রেসপন্স মেটাডেটা চায়। একটি সার্ভার HEAD প্রত্যাখ্যান করতে পারে বা ভিন্নভাবে সামলাতে পারে, তাই সফল হেডার পরীক্ষা পরবর্তী ডাউনলোড সফল হবে তার প্রমাণ নয়।

এখানে প্রথম রেসপন্স দেখতে রিডাইরেক্ট অনুসরণ নিষ্ক্রিয় করা হয়েছে। তখন একটি Location হেডার ও একটি রিডাইরেক্ট স্ট্যাটাস অন্য URL আনতে নির্দেশ নয়, বরং উপযোগী ফলাফল। যদি পরীক্ষাটি রিডাইরেক্ট অনুসরণ করা উচিত, তবে সেই নীতি সচেতনভাবে পরিবর্তন করুন এবং অতিরিক্ত রেসপন্স হেডার হিসাব করুন।

false আর্গুমেন্টটি একটি ইনডেক্সড হেডার অ্যারে রাখে। যখন অ্যাসোসিয়েটিভ পার্সিং বেশি উপযোগী, তখন true ব্যবহার করুন।

সম্পর্কিত নিবন্ধ