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 استعمال کریں۔

متعلقہ مضامین