Se puede definir una función de progreso:
curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'my_progress_handler');
El nombre de una función de devolución de llamada, donde función de la devolución de llamada toma tres parámetros . El primero es el recurso cURL , el segundo es un recurso de descriptor de archivo y el tercero es . Devuelve la cadena que contiene los datos.
Para obtener más información, consulte here.
Atención: This comment disputa la propia firma de función de PHP.
Usted no puede utilizar exec()
, porque es una función de bloqueo. Esperará, hasta que el programa en cuestión haya terminado.
Editar: Ah, veo que ha utilizado el símbolo de unión, no importa
Lo que pudo uso es popen()
, pero a menos rizo tiene una buena manera de dar salida a los avances, esto no va a ser bonito.
Sugeriría pasar -#
como parámetro a curl
, de esa manera usted puede tomar el progreso muy bien de la secuencia de salida.
Pero, ¿eso funciona para los comandos curl llamados asincrónicamente a través de exec? – Nathan
Exec no bloqueará el comando se ejecuta como un trabajo con &. Sin embargo, no obtendrás ningún resultado. – datasage
No, eso funcionará a través de 'curl_init()' y 'curl_exec()'. @datasage: sí, acabo de notar y corregir eso en mi última edición. Pero aún así, 'popen()' o 'proc_open()' va a ser más bonito, porque obtienes los manejadores de la secuencia de outstream directamente. – phant0m