ਜਵਾਬ ਦੇ ਮੁੱਖ ਹਿੱਸੇ ਤੋਂ ਹੈਡਰ ਲਾਈਨਾਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਇਕੱਠੀਆਂ ਕਰੋ। ਪਰਾਕਸੀ ਰਾਹੀਂ ਹੋਣ ਵਾਲਾ ਟ੍ਰਾਂਸਫਰ ਇੱਕ ਹੀ ਕਾਰਵਾਈ ਵਿੱਚ CONNECT, ਪ੍ਰਮਾਣੀਕਰਨ, ਰੀਡਾਇਰੈਕਟ ਅਤੇ ਮੰਜ਼ਿਲ ਦੇ ਜਵਾਬ ਦੇ ਹੈਡਰ ਭੇਜ ਸਕਦਾ ਹੈ:

$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
    function ($handle, $line) use (&$headerLines) {
        $headerLines[] = $line;
        return strlen($line);
    }
);

ਇਹ ਕਾਲਬੈਕ ਕੱਚਾ ਲਾਈਨ ਕ੍ਰਮ ਰੱਖਦਾ ਹੈ ਅਤੇ ਸਵੀਕਾਰ ਕੀਤੇ ਬਾਈਟਾਂ ਦੀ ਗਿਣਤੀ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਪੂਰੀਆਂ ਲਾਈਨਾਂ ਮਿਲਦੀਆਂ ਹਨ; ਪਰ ਇਹ ਅਜੇ ਉਹਨਾਂ ਨੂੰ ਜਵਾਬਾਂ ਵਿੱਚ ਨਹੀਂ ਸਮੂਹਿਤ ਕਰਦਾ ਅਤੇ ਨਾ ਹੀ ਅੰਤਿਮ ਵੈੱਬਸਾਈਟ ਦੇ ਹੈਡਰ ਚੁਣਦਾ ਹੈ।

ਕ੍ਰਮ ਦੀ ਵਿਆਖਿਆ ਬਲਾਕਾਂ ਵਜੋਂ ਕਰੋ

HTTP ਸਥਿਤੀ ਲਾਈਨ ਜਵਾਬ ਬਲਾਕ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ, ਅਤੇ ਖਾਲੀ ਲਾਈਨ ਉਸਦੇ ਹੈਡਰ ਖਤਮ ਕਰਦੀ ਹੈ। ਅੰਤਿਮ ਮੰਜ਼ਿਲ ਦਾ ਜਵਾਬ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹ ਸੀਮਾਵਾਂ ਸੰਭਾਲੋ। ਵਿਚਕਾਰਲੇ ਪ੍ਰਮਾਣੀਕਰਨ ਯਤਨ ਅਤੇ ਰੀਡਾਇਰੈਕਟ ਹਰ ਇੱਕ ਬਲਾਕ ਜੋੜ ਸਕਦੇ ਹਨ।

ਟ੍ਰੇਲਰ ਬਾਅਦ ਵਿੱਚ ਕਾਲਬੈਕ ਰਾਹੀਂ ਆ ਸਕਦੇ ਹਨ। ਹਰ ਪਿਛਲੀ ਫੀਲਡ ਨੂੰ ਪਹਿਲੇ ਜਵਾਬ ਨਾਲ ਜੋੜਨ ਦੀ ਬਜਾਏ ਉਹਨਾਂ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਹੈਡਰਾਂ ਤੋਂ ਵੱਖ ਪਛਾਣਨ ਲਈ ਕਾਫੀ ਪਾਰਸਰ ਸਥਿਤੀ ਰੱਖੋ।

ਟਨਲ ਦਾ ਸਬੂਤ ਰੱਖੋ ਜਾਂ ਦਬਾਓ

HTTPS ਟਨਲ ਦੀ CONNECT ਸਥਿਤੀ ਲਈ CURLINFO_HTTP_CONNECTCODE ਵੱਖਰਾ ਪੜ੍ਹੋ। ਸਵੀਕਾਰ ਕੀਤਾ ਟਨਲ ਸਫਲ ਵੈੱਬਸਾਈਟ ਜਵਾਬ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ।

ਜੇ ਸੰਗ੍ਰਾਹਕ ਨੂੰ CONNECT ਹੈਡਰਾਂ ਦੀ ਲੋੜ ਨਹੀਂ, ਤਾਂ CURLOPT_SUPPRESS_CONNECT_HEADERS ਸੰਰਚਿਤ ਹੈਡਰ ਆਉਟਪੁੱਟ ਅਤੇ ਕਾਲਬੈਕ ਮਾਰਗਾਂ ਵਿੱਚ ਉਹਨਾਂ ਦੀ ਡਿਲੀਵਰੀ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਜੁੜੇ libcurl ਅਤੇ PHP ਬਿਲਡ ਵਿੱਚ ਸਮਰਥਨ ਜਾਂਚੋ। ਦਬਾਉਣਾ ਸੰਗ੍ਰਹਿ ਨੂੰ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ, ਪਰ ਨਿਦਾਨ ਵਿੱਚ ਸਹਾਇਕ ਹੋ ਸਕਣ ਵਾਲਾ ਹੈਡਰ-ਪੱਧਰੀ ਟਨਲ ਸਬੂਤ ਹਟਾ ਦਿੰਦਾ ਹੈ।

ਸਥਿਰ ਆਫਸੈੱਟ ਜਾਂ HTML ਟੈਗ ਲੱਭ ਕੇ ਮੁੱਖ ਹਿੱਸਾ ਮੁੜ ਨਾ ਲਵੋ। ਹੈਡਰ ਦੇ ਆਕਾਰ ਵੱਖ-ਵੱਖ ਹੁੰਦੇ ਹਨ, ਵਿਚਕਾਰਲੇ ਜਵਾਬ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਮੁੱਖ ਹਿੱਸਾ ਬਾਈਨਰੀ ਜਾਂ ਖਾਲੀ ਹੋ ਸਕਦਾ ਹੈ। ਪੁਰਾਣੀ ਵਰਜਨ-ਵਿਸ਼ੇਸ਼ ਬਗ ਰਿਪੋਰਟ ਅਨੁਮਾਨਿਤ ਆਫਸੈੱਟ ਨੂੰ ਜਾਇਜ਼ ਨਹੀਂ ਠਹਿਰਾਉਂਦੀ।

ਮੁੱਖ ਹਿੱਸੇ ਦੀ ਸੰਭਾਲ ਵੱਖ ਰੱਖੋ, ਅਤੇ ਸੰਗ੍ਰਹਿ ਜਾਂ ਪਾਰਸਿੰਗ ਫੇਲ ਹੋਣ 'ਤੇ ਦੇਖੇ ਗਏ ਜਵਾਬ ਪੜਾਵਾਂ ਨਾਲ ਟ੍ਰਾਂਸਫਰ ਗਲਤੀ ਰੱਖੋ। ਇਹ ਰੁਕੇ ਹੋਏ ਕਾਲਬੈਕ, ਵਿਗੜੇ ਐਪਲੀਕੇਸ਼ਨ ਡੇਟਾ ਅਤੇ ਰੱਦ ਕੀਤੇ ਪਰਾਕਸੀ ਲੈਣ-ਦੇਣ ਨੂੰ ਵੱਖ ਕਰਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ