Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

PHP - ¿ Como hacer que CURL ejecute desde un Bucle ?

PHP, HTML, CSS, JS, jQuery, etc.
bonfim
Observador/a
Mensajes: 1
Registrado: 05 Oct 2019, 02:50
Género:

PHP - ¿ Como hacer que CURL ejecute desde un Bucle ?

#1

Mensaje por bonfim »

Hola,
Necesito leer un fichero txt para insertar una linea a la vez en Servicio Web remoto.
Yo logro exito solo cuando ejecuto la aplicacion con un solo dato.
Pero se hago la lectura del fichero y intento insertar los datos , no pasa nada.
Gracias por la ayuda.

1 - Ejemplo de la aplicacion funcional solo con un dato.

Código: Seleccionar todo

<?php
set_time_limit(0);

/* API URL */
$url = 'https:..';
$header = array("Authorization: Basic Q09CUkFSUjp2UT..","Content-Type: application/json");

/* Array Parameter Data */
$data = '{"cliente":"8609","acao":"858","motivo":"699","obs":"data-2019-09-20 php"}';

/* Init cURL resource */
$ch = curl_init($url);
/* pass encoded JSON string to the POST fields */
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

/* set the content type json */
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
/* set return type json */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
/* execute request */
 $result = curl_exec($ch);
 echo $result.'<br>';  
/* close cURL resource */ curl_close($ch); echo 'fim'.'<br>'; ?>

2 - Estoy intentando hacer de esta forma
2.1 - Fichero txt con dos lineas
'{"cliente":"8609","acao":"858","motivo":"699","obs":"data-2019-09-20 php"}'
'{"cliente":"8610","acao":"858","motivo":"699","obs":"data-2019-09-20 php"}'

2.2 - Code PHP

Código: Seleccionar todo

/* Envio de multiplas lineas datos */

set_time_limit(0);

$dir = 'C:/00cargas'; // directorio para lectura del fichero
$dir2= 'C:/00cargasok/';

$dh = opendir($dir);
$arq = readdir($dh);

// bucle que para leer todos los ficheros
while (false != ($arq = readdir($dh))){
// evalua ficheros
$exten = substr($arq,strlen($arq)-3,3);
if ($exten != "" && $exten !="." && strtolower($exten) !="jpg" && strtolower($exten) !="gif" && strtolower($exten) !="bmp"){

$cont_lin=0;
$linea="";
$data="";

/* API URL */
$url = 'https:...';
$header = array("Authorization: Basic Q09CUkFSUjp2UThYM....=","Content-Type: application/json");

// abrir fichero
$arquivo = fopen($dir."/".$arq,"r");

// evalua se hay fichero para leer
if ($arquivo){
while (!feof ($arquivo)){
$linea = fgets($arquivo);
$data = substr($linea,0,strlen($linea)-2); // quita el '\r\n'

/* Init cURL resource */
$ch = curl_init($url);

//curl_setopt($ch, CURLOPT_URL, $url);
/* pass encoded JSON string to the POST fields */
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
echo $data.'<br>';
/* set the content type json */
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

/* set return type json */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

/* execute request */
$result = curl_exec($ch);

if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch).'<br>';
}
/* close cURL resource */
curl_close($ch);
}
fclose($arquivo);
}// cierra el WHILE $arquivo
}// cierra le WHILE exten
}// cierra el WHILE readdir
?>

Responder

Volver a “🆘 Recursos Webmaster”