Условная чувствительность к регистру с данными API

Я новичок в интеграции API и PHP. Недавно я интегрировал VIN-декодер в свое приложение. Введите VIN автомобиля в поле ввода, нажмите «Отправить», и информация о транспортном средстве будет возвращена.

Я работал над форматированием вывода данных по своему вкусу. В частности, автомобиль сделать данные. Данные Make представлены в заглавных буквах. Например, Audi выводится как AUDI. Чтобы это исправить, я добавил следующий код:

$data = array();
foreach ($json['Results'][0] as $k => $v){

if ($k == "Make"){
$v = strtolower($v);
$v = ucwords($v);

}
}

В этой версии AUDI представлена ​​как Audi, и это здорово. У меня проблемы с такими брендами, как BMW и Mercedes-Benz. С этим дополнением они представлены как Bmw и Mercedes-Benz. Я пытался добавить простые операторы if, чтобы решить эту проблему, но безуспешно.

Любые идеи относительно того, как я могу создать исключения из правила верхнего регистра, которое я создал?

Вот мой HTML-код, простое поле ввода и кнопка отправки.

<!DOCTYPE html>
<html>

<head>
<title>VIN Decoder API Test</title>

<style type="text/css">
input,button {width: 200px;display: block;margin-left: auto;margin-right: auto;}
button {width: 100px;background-color: darkgray;}
</style>

</head>

<body>

<form action="processvin4.php" method="post">

<input type="text" id="b12" placeholder="Enter VIN" name="b12" maxlength="100"/>
<br>
<button id="submit_btn">Submit</button>

</form>

<br>
<br>

</body>
</html>

0

Решение

Чтобы просто исправить то, что вы пытаетесь, вам просто нужно поставить strtolower в «другом»

if ($k == "Make"){
if ($v == "BMW"){
$v = "BMW";
}
else if ($v == "MERCEDES-BENZ"){
$v = "Mercedes-Benz";
}
else {
$v = strtolower($v);
$v = ucwords($v);
}
}
1

Другие решения

Просто создайте массив с исключениями и подставьте из него:

$v = strtolower($v);

$nameExceptions = [
'bmw' => 'BMW',
'mercedes-benz' => 'Mercedes-Benz'
];

if(isset($nameExceptions[$v])) {
$v = $nameExceptions[$v];
}
else {
$v = ucwords($v);
}
1

Ваш if заявления никогда не сработают, вы трансформируете текст перед проверкой, меняете порядок и делаете его elseif заявление:

if ($k == "Make"){
$v = strtolower($v);
$v = ucwords($v);
if ($v == "BMW"){
$v = "BMW";
}
if ($v == "MERCEDES-BENZ"){
$v = "Mercedes-Benz";
}
}

становится:

if ($k == "Make"){
if ($v == "BMW"){
$v = "BMW";
}
else if ($v == "MERCEDES-BENZ"){
$v = "Mercedes-Benz";
}else{
$v = strtolower($v);
$v = ucwords($v);
}
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector