Ir para conteúdo

Como realizar put com a biblioteca curl com um array múltiplo

Comunidade iMasters
arlindophp
   (0 análises)

Detalhes do Evento


Pessoal estou tentando realizar um put com um json utilizando a biblioteca curl, mas só consigo fazer um por vez. Existe alguma forma de fazer isso usando a biblioteca Curl do php? Segue o código fonte funcionando, mas o curl não está aceitando um array multidimensional.

*****************************

<?php
 
function doPut($url, $fields)
{
    $fields = (is_array($fields)) ? http_build_query($fields) : $fields;
 
    if ($ch = curl_init($url)) {
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($fields)));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        curl_exec($ch);
        //$resp = curl_exec($ch);
 
        $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
        curl_close($ch);
 
        return (int) $status;
    } else {
        return false;
    }
}
 
session_start();
$s_chave = $_POST['edtChave'];
$_SESSION['s_chave'] = $s_chave;
$edtChave = $_POST['edtChave'];
 
$edtCultura = $_POST['edtCultura'];
$edtPraga = $_POST['edtPraga'];
$edtDose = $_POST['edtDose'];
$edtEspecificacao = $_POST['edtEspecificacao'];
$edtAplicaTerrestre = $_POST['edtAplicaTerrestre'];
$edtAplicarea = $_POST['edtAplicarea'];
$edtIntseg = $_POST['edtIntseg'];
$edtIntEntrada = $_POST['edtIntEntrada'];
$edtDadosGerais = $_POST['edtDadosGerais'];
 
$url = "www.api.site.com";
echo 'Url = ' . $url;
echo '<br>';
 
    $data_array2 = array();
    for ($i = 0; $i < 5; $i++) {
        $montagem_array = array(
            'cultura' => $_POST['edtCultura'],
            'praga' => $_POST['edtPraga'],
            'dose' => $_POST['edtDose'],
            'especificacao' => $_POST['edtEspecificacao'],
            'aplicaterrestre' => $_POST['edtAplicaTerrestre'],
            'aplicaerea' => $_POST['edtAplicarea'],
            'intseg' => $_POST['edtIntseg'],
            'intentrada' => $_POST['edtIntEntrada'],
            'dadosgerais' => $_POST['edtDadosGerais'],
        );
 
        $data_array2[$i] = $montagem_array;
    }
 
    //$json = json_encode($data_array2);
 
echo '<br>';
echo 'Array convertido para formato json: ' . json_encode($data_array2);
echo '<br>';
//$data = $array_para_string;
//echo $data.'+cultura=asdf&praga=asdf&dose=dasf&especificacao=sadf&aplicaterrestre=sadf&aplicaerea=asdf&intseg=2&intentrada=1&dadosgerais=sdaf';
 
$header = array(
    'Authorization: falkdsjçlaskf'
 
);
 
//Nova tentativa 07/01/2022
if (doPut($url, $data_array2) == 200) {
 
    echo 'Passou!';
    echo '<br>';
    echo json_encode($data_array2);
    echo '<br>';
}
// do something
else {
    echo 'Não deu certo';
    echo '<br>';
    echo json_encode($data_array2);
    echo '<br>';
}
//Nova tentativa
 
//header('location:jsonpostprodutobula_teste.php');


Crie um conta ou faça login para deixar um review

Você precisa ser um membro para postar um review

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

Não tem nenhum review para mostrar

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.