Your code is full of problems, but I’ll try to show you one by one here. I understand you’re making a call by curl
and who wants to manipulate the answer, so let’s go:
// $url está sendo declarado fora do escopo de onde será usado, no caso, o seu método
$url = file_get_contents('https://parallelum.com.br/fipe/api/v1/motos/marcas');
// essa função não foi chamada em lugar nenhum
function get_page($url){ // $url é redeclarado como alterador de parametro e ofusca a variável ali em cima
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
// está retornando o corpo da response, o bloco for ali em baixo não será executado
return $result;
// você sabe o que está vindo no $result para enumerar ele?
foreach ($result as $key) {
// quem é codigo e quem é $mmot (que nem foi declarado)?
if($key['codigo'] == $mmot){
// aqui nunca será processado, pois será atirado um erro na linha acima.
// mas se $mmot fosse declarado, a linha abaixo também não faria lógica, já que está procurando a chave '$mmot' na coleção $key.
$mmot = $key['$mmot']['nome'];
}
}
}
$marcafinal = $mmot;
Your question is unclear and the refactoring of your code would be approximately that:
$url_endpoint = file_get_contents('https://parallelum.com.br/fipe/api/v1/motos/marcas');
function get_page($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
$responseValues = json_decode($result, true); // isso se sua API for JSON
// Você precisa associar esse $mmot a algo, não pode deixar ele vago e sem declaração.
$mmot = 0;
$returnValue = null;
foreach ($result as $key) {
if($key['codigo'] == $mmot){
$returnValue = $key['nome'];
}
}
return $returnValue;
}
$marcafinal = get_page($url_endpoint);
I did so taking into account that $mmot
is a code that leads to the JSON object that searches for nome
. Thus, you must specify $mmot
in the method I left clear there, or pass as a parameter.
if you give the Return to $result it will terminate the ai function without running the foreach
– Luan Brito
Hi, I tried to do what you said and took the Return, but keeps returning me no value :(
– Victor Augusto
I posted an example that tests, if you want to test there, I tested and ok
– Luan Brito