Прокси испоручује податке. Ваша функција за писање враћа погрешну вредност. libcurl тада прекида, а околни код пријављује још један „неуспех преузимања преко проксија“.

Функција мора пријавити колико је примљених бајтова стварно обрадила. Враћање другог броја означава неуспех. За намерно блокирајуће одредиште за писање, фрагмент може изгледати овако:

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

Ово претпоставља да постојећа апликација поседује ручку и одредиште за писање. Неуспешно или кратко писање прекида уместо да тихо тврди да је цео фрагмент сачуван. Неблокирајуће одредиште захтева одговарајући дизајн међусмештања и паузе/наставка; мали фрагмент га не пружа.

Бројте бајтове, а не приказане знакове. Подаци могу бити бинарни или део вишебајтне текстуалне секвенце. Један позив није нужно један ред, JSON документ или порука услуге.

Инкрементално парсирање захтева сопствено стање између позива. Супротно томе, накупљање сваког фрагмента до завршетка може бити исправно за мали ограничени одговор, али није меморијска политика за велики или бесконачни ток.

Сачувајте резултат преноса и доказ о неуспеху функције. Локална грешка диска или прекид парсера могу се догодити након успостављања ваљане прокси руте. Ако намеравате да станете након префикса, означите то намерно заустављање функције одвојено. Замена прокси адресе не може поправити одредиште које је престало да прима податке.

Повезани чланци