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 ਵਰਤੋ।

ਸੰਬੰਧਿਤ ਲੇਖ