-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathcurl-multi-exec.xml
140 lines (126 loc) · 3.69 KB
/
curl-multi-exec.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b653253e42693d51085cc03257f56b5d75626b02 Maintainer: aeoris Status: ready -->
<refentry xml:id="function.curl-multi-exec" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>curl_multi_exec</refname>
<refpurpose>Ejecuta las sub-conexiones del recurso cURL actual</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>curl_multi_exec</methodname>
<methodparam><type>resource</type><parameter>mh</parameter></methodparam>
<methodparam><type>int</type><parameter role="reference">still_running</parameter></methodparam>
</methodsynopsis>
<para>
Procesa cada uno de los recursos del grupo. Este método puede ser llamado cuando el recurso
tenga o no tenga que leer o escribir datos.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&curl.mh.description;
<varlistentry>
<term><parameter>still_running</parameter></term>
<listitem>
<para>
Hace referencia a una bandera que dice cuando las operaciones siguen ejecutándose.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Código cURL definido en las <link linkend="curl.constants">Constantes predefinidas</link> cURL.
</para>
<note>
<para>
Solo devuelve errores en relación con el grupo. Es posible que hayan ocurrido problemas
en transferencias individuales aunque esta función devuelva <constant>CURLM_OK</constant>.
</para>
</note>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>curl_multi_exec</function> example</title>
<para>
Este ejemplo creará dos recursos cURL, los añadirá al grupo de
recursos y los ejecutará de forma asíncrona.
</para>
<programlisting role="php">
<![CDATA[
<?php
// Crea los dos recursos cURL
$ch1 = curl_init();
$ch2 = curl_init();
// Establecer la URL y otras opciones apropiadas
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// Crea el recurso cURL múltiple
$mh = curl_multi_init();
// Añade los dos recursos
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$active = null;
// Ejecuta los recursos
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// Cierra los recursos
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>curl_multi_init</function></member>
<member><function>curl_multi_select</function></member>
<member><function>curl_exec</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->