la funcion:
Código PHP:
function Revisa_Cuadernos($api_key, $cookie, $CRR_Cuaderno, $TIP_Causa, $Rol_Causa, $Cod_Tribunal)
{
$this->init($api_key);
if($this->fSocket)
{
$tuberia = proc_open("php pipe_threads.php $api_key $CRR_Cuaderno $cookie $TIP_Causa $Rol_Causa $Cod_Tribunal",
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);
}
return 0;
}
la tuberia "pipe_threads.php"
Código PHP:
$cookie = $argv[3];
$CRR_Cuaderno = explode("_", $argv[2]);
$TIP_Causa = explode("_", $argv[4]);
$Rol_Causa = $argv[5];
$Cod_Tribunal = $argv[6];
// 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 -------------------------------------------------------------------------------------------------------------
if($cierre_bucle != true):
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);
// buqueda de fechas en el cuaderno
$fechas_arr = array();
$fechas_arr = $mc->MuestraFecha($results);
// Nombre del Cuaderno
$nombre_cuaderno = $mc->Nombre_Cuaderno($results);
// Archivo asociado al movimiento de la causa
$attachment = $mc->Archivo_Movimiento($results);
// Busqueda de la fecha actual dentro de las fechas del cuaderno
$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";
$cierre_bucle = true;
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";
$cierre_bucle = true;
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";
$cierre_bucle = true;
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";
$cierre_bucle = true;
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";
$cierre_bucle = true;
endif;
$BYTES_CUADERNO = strlen($results);
$total_bytes = $total_bytes + $BYTES_CUADERNO;
}
endif;
$ret = array('total_bytes_cuadernos' => $total_bytes,
'cuaderno' =>$cuaderno,
'movimiento_bol' => $movimiento_bol,
'fecha' => $fecha_mov,
'archivo_mov_causa' => $archivo_mov_causa,
'debug' => $debug);
//$ret = array($cookie, $CRR_Cuaderno, $TIP_Causa, $Rol_Causa, $Cod_Tribunal);
echo json_encode($ret);
?>
gracias.