lo he realizado de la siguiente manera:
Código PHP:
$tuberia = proc_open("curl --data 'api_key=$api_key&CRR_Cuaderno=$CRR_Cuaderno&cookie=$cookie&Tip_Causa=$TIP_Causa&Rol_Causa=$Rol_Causa&Cod_Tribunal=$Cod_Tribunal' 'http://192.168.0.100/bkp/html-scapper-jud/new-engine/Estable/robot/pipe_threads.php'",
array(
array("pipe","r"), //stdin
array("pipe","w"), //stdout
array("pipe","w") //stderr
),
$pipes);
$salida_pipe = stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$retorno_pipe = proc_close($tuberia);
return json_decode($salida_pipe);
Código PHP:
include("bd.class.php");
$db = new db_class;
$db->connect();
include("LI-engine.php");
$mc = new LegIntAPI();
$mc->getHeaders = false;
$mc->getContent = true;
$cookie = $_POST['cookie'];
$CRR_Cuaderno = explode("_", $_POST['CRR_Cuaderno']);
$TIP_Causa = explode("_", $_POST['Tip_Causa']);
$Rol_Causa = $_POST['Rol_Causa'];
$Cod_Tribunal = $_POST['Cod_Tribunal'];
// realiza la llamada al cuaderno
$url_cuadernos = "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do?";
$rol_data = explode("-", $Rol_Causa);
$url = "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do";
$total_cuadernos = count($CRR_Cuaderno);
$curl_arr = array();
$master = curl_multi_init();
for($i = 0; $i < $total_cuadernos; $i++)
{
$data = array();
$data['TIP_Causa'] = $rol_data['0'];
$data['ROL_Causa'] = $rol_data['1'];
$data['ERA_Causa'] = $rol_data['2'];
$data['COD_Tribunal'] = $Cod_Tribunal;
$data['TIP_Cuaderno'] = $TIP_Causa[$i];
$data['GLS_Cuaderno'] = "cualquier_cuaderno";
$data['CRR_IdCuaderno'] = $CRR_Cuaderno[$i];
$data['TIP_Informe'] = "1";
$data['FLG_Caratula'] = "0";
$data['TIP_Cargo'] = "3";
$data['COD_Corte'] = "null";
$data['FLG_ImpresionTribunal'] = "1";
$data['CRR_Cuaderno'] = $CRR_Cuaderno[$i];
$data['irAccionAtPublico'] = "Ir+a+Cuaderno";
$data['FLG_Vuelta'] = "null";
$cuaderno_data = $mc->compile_post_data($data);
$curl_arr[$i] = curl_init($url);
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_arr[$i], CURLOPT_POST, 1);
curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS, $cuaderno_data);
curl_setopt($curl_arr[$i], CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION ,1);
curl_multi_add_handle($master, $curl_arr[$i]);
}
// inicio del multi threading ------------------------------------------------------------------------------------------------------------------------
do {
$mrc = curl_multi_exec($master, $threads);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($threads && $mrc == CURLM_OK) {
if (curl_multi_select($master) != -1) {
do {
$mrc = curl_multi_exec($master, $threads);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// busqueda coincidencias en los cuadernos -------------------------------------------------------------------------------------------------------------
for($i = 0; $i < $total_cuadernos; $i++)
{
$results = curl_multi_getcontent ( $curl_arr[$i] );
curl_multi_remove_handle($master, $curl_arr[$i]);
// curl_multi_close($master);
//$consulta = mysql_query($sql_log, $conn);
// buqueda de fechas en el cuaderno
$fechas_arr = array();
$fechas_arr = $mc->MuestraFecha($results);
//array_unshift($fechas_arr, "05/12/2011");
// Nombre del Cuaderno
$nombre_cuaderno = $mc->Nombre_Cuaderno($results);
// Archivo asociado al movimiento de la causa
$attachment = $mc->Archivo_Movimiento($results);
$fecha_actual = date("d/m/Y");
$fecha_menos96hs = date('d/m/Y',time()-(4*24*60*60)); // 4 dias
$fecha_menos72hs = date('d/m/Y',time()-(3*24*60*60)); // 3 dias
$fecha_menos48hs = date('d/m/Y',time()-(2*24*60*60)); // 2 dias
$fecha_menos24hs = date('d/m/Y',time()-(24*60*60)); // 1 dia
if(array_search($fecha_actual, $fechas_arr) === 0):
$cuaderno = utf8_encode(substr($nombre_cuaderno,2,-2));
$movimiento_bol = "TRUE";
$fecha_mov = $fecha_actual;
$archivo_mov_causa = $attachment;
$debug = "La fecha actual es el primer elemento del cuaderno: " .$cuaderno. "\r\n";
endif;
if(array_search($fecha_menos24hs, $fechas_arr) === 0):
$cuaderno = utf8_encode(substr($nombre_cuaderno,2,-2));
$movimiento_bol = "TRUE";
$fecha_mov = $fecha_menos24hs;
$archivo_mov_causa = $attachment;
$debug = "La fecha de ayer es el primer elemento del cuaderno: " .$cuaderno. "\r\n";
endif;
if(array_search($fecha_menos48hs, $fechas_arr) === 0):
$cuaderno = utf8_encode(substr($nombre_cuaderno,2,-2));
$movimiento_bol = "TRUE";
$fecha_mov = $fecha_menos48hs;
$archivo_mov_causa = $attachment;
$debug = "La fecha antes de ayer es el primer elemento del cuaderno: " .$cuaderno. "\r\n";
endif;
if(array_search($fecha_menos72hs, $fechas_arr) === 0):
$cuaderno = utf8_encode(substr($nombre_cuaderno,2,-2));
$movimiento_bol = "TRUE";
$fecha_mov = $fecha_menos72hs;
$archivo_mov_causa = $attachment;
$debug = "La fecha hace 3 dias es el primer elemento del cuaderno: " .$cuaderno. "\r\n";
endif;
if(array_search($fecha_menos96hs, $fechas_arr) === 0):
$cuaderno = utf8_encode(substr($nombre_cuaderno,2,-2));
$movimiento_bol = "TRUE";
$fecha_mov = $fecha_menos96hs;
$archivo_mov_causa = $attachment;
$debug = "La fecha de hace 4 dias es el primer elemento del cuaderno: " .$cuaderno. "\r\n";
endif;
$BYTES_CUADERNO = strlen($results);
$tot = $tot + $BYTES_CUADERNO;
}
echo 'TOTAL BYTES MULTITHREAD: ' .$tot. "\r\n";
$ret = array('llamada' => $content_cuaderno,
'URL_POST' => $cuaderno_data,
'mje' => $mje,
'total_bytes_cuadernos' => $tot,
'cuaderno' =>$cuaderno,
'movimiento_bol' => $movimiento_bol,
'fecha' => $fecha_mov,
'archivo_mov_causa' => $archivo_mov_causa,
'debug' => $debug);
echo json_encode($ret);
alguna sugerencia..
gracias.