Для чего мы используем CURLOPT_WRITEFUNCTION в cURL PHP? - PullRequest
8 голосов
/ 19 февраля 2010

Не могли бы вы описать это в примерах, пожалуйста?

Ответы [ 3 ]

9 голосов
/ 12 апреля 2013

Я знаю, что это старый вопрос, но, возможно, мой ответ поможет вам или кому-то еще. Функция WRITEFUNCTION полезна для обработки текста, когда он поступает в потоковом режиме, или для прерывания загрузки в зависимости от некоторых условий. Вот пример, который просто помещает весь текст в заглавные буквы:

function get_html($url){
    $ch = curl_init();
    $obj = $this;//create an object variable to access class functions and variables
    $this->result = '';
    $callback = function ($ch, $str) use ($obj) {
        $obj->result .= strtoupper($str);
        return strlen($str);//return the exact length
    };
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, $callback);
    curl_exec($ch);
    curl_close($ch);
    return $this->result;
}

Чтобы увидеть, как я это использовал, посмотрите эту ссылку: Параллельный запрос cURL с обратным вызовом WRITEFUNCTION .

3 голосов
/ 19 февраля 2010

Посмотрите

ПАРАМЕТРЫ ВЫЗОВА для определения и

Пример callbacks.php

1 голос
/ 19 февраля 2010

Используется с функцией curl_setopt.

CURLOPT_WRITEFUNCTION - это имя функции обратного вызова, в которой функция обратного вызова принимает два параметра. Первый - это ресурс cURL, а второй - строка с записываемыми данными. Данные должны быть записаны с использованием этой функции обратного вызова. Должно вернуть точное количество записанных байтов, иначе это не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...