Casglwch linellau pennawd ar wahân i gorff yr ymateb. Gall trosglwyddiad drwy ddirprwy ddosbarthu pennawdau CONNECT, dilysu, ailgyfeirio ac ymateb cyrchfan mewn un gweithrediad:

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

Mae'r alwad yn ôl hon yn cadw'r dilyniant llinell crai ac yn dychwelyd nifer y beitiau a dderbynnir. Mae'n derbyn llinellau cyflawn; ond nid yw eto'n eu grwpio'n ymatebion nac yn dewis pennawdau'r wefan derfynol.

Dehonglwch y dilyniant fel blociau

Mae llinell statws HTTP yn cychwyn bloc ymateb, ac mae llinell wag yn diweddu ei benawdau. Cadwch y ffiniau hynny cyn dewis yr ymateb cyrchfan terfynol. Gall ymgais dilysu ganolradd ac ailgyfeiriad ychwanegu blociau eu hunain.

Gall trelars gyrraedd yn ddiweddarach drwy'r alwad yn ôl. Cadwch ddigon o gyflwr parsiaid i'w gwahaniaethu oddi wrth y pennawdau cychwynnol, yn lle atodi pob maes diweddarach i'r ymateb cyntaf.

Cadw neu atal tystiolaeth y twnnel

Darllenwch CURLINFO_HTTP_CONNECTCODE ar wahân ar gyfer statws CONNECT twnnel HTTPS. Nid yw twnnel a dderbynnir yn profi ymateb llwyddiannus gan y wefan.

Os nad oes angen pennawdau CONNECT ar y casglwr, mae CURLOPT_SUPPRESS_CONNECT_HEADERS yn rheoli eu dosbarthiad i'r allbwn pennawd a'r llwybrau alwad yn ôl a ffurfweddir. Gwiriwch gefnogaeth yn y libcurl a'r adeilad PHP cysylltiedig. Mae atal yn symleiddio casglu ond yn tynnu tystiolaeth twnnel ar lefel pennawd a all helpu diagnosteg.

Peidiwch ag adfer y corff gan ddefnyddio dadleoliad sefydlog nac wrth chwilio am dag HTML. Mae maint pennawdau'n amrywio, mae ymatebion canolradd yn wahanol, ac mae'r corff yn bosibl bod yn ddeuaidd neu'n wag. Nid yw hen adroddiad nam penodol i ryddhad yn cyfiawnhau dadleoliad a ddyfalwyd.

Cadwch drin y corff ar wahân, a chadwch y gwall trosglwyddo gyda'r camau ymateb a arsylwyd os yw casglu neu barsio'n methu. Mae hynny'n gwahaniaethu rhwng alwad yn ôl a dorrwyd, data cymhwysiad annilys a chyfnewid dirprwy a wrthodwyd.

Erthyglau cysylltiedig