Callback tulis PHP cURL mesti memulangkan bilangan bait yang dikendalikan
Patuhi kontrak kiraan bait semasa menggunakan ketulan respons proksi dan bezakan kegagalan tulis setempat daripada sambungan proksi yang gagal.
Proksi menyampaikan data. Callback tulis anda memulangkan nilai yang salah. libcurl kemudian membatalkan, dan kod di sekeliling melaporkan satu lagi “kegagalan muat turun melalui proksi”.
Callback mesti melaporkan berapa banyak bait diterima yang benar-benar dikendalikannya. Memulangkan kiraan berbeza menandakan kegagalan. Untuk sink tulis yang sengaja menyekat, serpihan boleh kelihatan seperti ini:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
function ($handle, $chunk) use ($sink) {
$written = fwrite($sink, $chunk);
return $written === false ? 0 : $written;
}
);Ini menganggap aplikasi sedia ada memiliki handle dan sink tulis. Tulisan yang gagal atau pendek membatalkan dan bukannya mendakwa secara senyap bahawa seluruh ketulan disimpan. Sink tidak menyekat memerlukan reka bentuk penimbalan dan jeda/sambung semula yang sesuai; serpihan kecil tidak menyediakannya.
Kira bait, bukan aksara yang dipaparkan. Data boleh berbentuk binari atau sebahagian daripada jujukan teks berbilang bait. Satu callback bukan semestinya satu baris, satu dokumen JSON atau satu mesej daripada perkhidmatan.
Penghuraian berperingkat memerlukan keadaan sendiri antara callback. Sebaliknya, mengumpul setiap ketulan sehingga selesai mungkin betul untuk respons kecil yang terbatas, tetapi ia bukan dasar memori untuk aliran besar atau tidak berkesudahan.
Simpan hasil pemindahan dan bukti kegagalan callback. Ralat cakera setempat atau pembatalan penghurai boleh berlaku selepas laluan proksi yang sah diwujudkan. Jika anda berniat untuk berhenti selepas awalan, tandakan pemberhentian callback yang disengajakan itu secara berasingan. Menggantikan alamat proksi tidak dapat membaiki sink yang berhenti menerima data.