proxy ສົ່ງຂໍ້ມູນມາ. Callback ການຂຽນຂອງທ່ານສົ່ງຄ່າທີ່ຜິດກັບຄືນ. ແລ້ວ libcurl ກໍຍົກເລີກ, ແລະ ໂຄ້ດອ້ອມຂ້າງລາຍງານ “ຄວາມລົ້ມເຫຼວໃນການດາວໂຫຼດຜ່ານ proxy” ອີກອັນໜຶ່ງ.

Callback ຕ້ອງລາຍງານວ່າມັນຈັດການໄບຕ໌ທີ່ໄດ້ຮັບຈັກໄບຕ໌ແທ້ໆ. ການສົ່ງຄືນຈຳນວນອື່ນສະແດງຄວາມລົ້ມເຫຼວ. ສຳລັບປາຍທາງການຂຽນທີ່ບລັອກໂດຍເຈດຕະນາ, ສ່ວນໜຶ່ງອາດເປັນແບບນີ້:

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;
    }
);

ນີ້ສົມມຸດວ່າແອັບພລິເຄຊັນທີ່ມີຢູ່ເປັນເຈົ້າຂອງ handle ແລະ ປາຍທາງການຂຽນ. ການຂຽນທີ່ລົ້ມເຫຼວ ຫຼື ສັ້ນຈະຢຸດ ແທນທີ່ຈະອ້າງຢ່າງງຽບໆວ່າທັງໝົດຖືກບັນທຶກໄວ້. ປາຍທາງທີ່ບໍ່ບລັອກຕ້ອງການການອອກແບບ buffer ແລະ ຢຸດ/ສືບຕໍ່ທີ່ເໝາະສົມ; ສ່ວນນ້ອຍບໍ່ໃຫ້ສິ່ງນັ້ນ.

ນັບໄບຕ໌ ບໍ່ແມ່ນຕົວອັກສອນທີ່ສະແດງ. ຂໍ້ມູນອາດເປັນ binary ຫຼື ເປັນສ່ວນໜຶ່ງຂອງລຳດັບຂໍ້ຄວາມຫຼາຍໄບຕ໌. Callback ໜຶ່ງບໍ່ຈຳເປັນໜຶ່ງແຖວ, ໜຶ່ງເອກະສານ JSON ຫຼື ໜຶ່ງຂໍ້ຄວາມຈາກບໍລິການ.

ການແຍກວິເຄາະແບບເພີ່ມຂຶ້ນຕ້ອງການສະຖານະຂອງຕົນເອງລະຫວ່າງ callback. ກົງກັນຂ້າມ, ການສະສົມທຸກສ່ວນຈົນສຳເລັດອາດຖືກຕ້ອງສຳລັບຄຳຕອບນ້ອຍທີ່ມີຂອບເຂດ, ແຕ່ບໍ່ແມ່ນນະໂຍບາຍຫນ່ວຍຄວາມຈຳສຳລັບສະຕຣີມໃຫຍ່ ຫຼື ບໍ່ມີທີ່ສິ້ນສຸດ.

ເກັບຜົນຂອງການໂອນ ແລະ ຫຼັກຖານຄວາມລົ້ມເຫຼວຂອງ callback. ຄວາມຜິດພາດຂອງດິສທ້ອງຖິ່ນ ຫຼື ການຢຸດຂອງ parser ອາດເກີດຂຶ້ນຫຼັງຈາກສ້າງເສັ້ນທາງ proxy ທີ່ຖືກຕ້ອງແລ້ວ. ຖ້າທ່ານຕ້ອງການຢຸດຫຼັງ prefix, ໝາຍການຢຸດ callback ທີ່ເຈດຕະນານັ້ນແຍກຕ່າງຫາກ. ການປ່ຽນທີ່ຢູ່ proxy ບໍ່ສາມາດແກ້ໄຂປາຍທາງທີ່ຢຸດຮັບຂໍ້ມູນໄດ້.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ