Наличие карты в PHP не является неразумным подходом, но вы делаете str_ireplace()
в обратном направлении: это search, replace, subject
, так что в вашем случае str_ireplace($db, $eu, $string);
Но просто делаете str_ireplace()
в списке строк через запятую не все равно идеально.Во-первых, представьте себе, что если после замены на ABS
вы столкнулись с другим элементом профиля, который соответствует lock
(который так и есть в «Антиблокировочной системе торможения»).К сожалению.Теперь вы перезаписали свою предыдущую замену!
Как насчет этого:
$prase = array("ABS" => "ABS (Anti lock braking System)"
,"DriverAirBag" => "Air bags");
$string= "ABS,DriverAirbag,GOGO,abs";
$fields = explode(',', $string);
foreach($fields as $field) {
$friendly = $field;
if (isset($phrase[$field]))
$friendly = $phrase[$field];
echo htmlspecialchars($friendly) . ': <input type="text" name="' . htmlspecialchars($field) . '" />
}
Ключ в том, что вы обрабатываете каждое поле отдельно.И ты никогда не делаешь замену;Вы ищете специально для ключевых слов "ABS" или "DriverAirbag".Если нет точного соответствия, у вас нет понятного человеку названия для этого предмета, и нет смысла делать какую-либо замену.
Все это можно улучшить еще больше, если у вас есть возможность изменитьсхема базы данных.Хранение списка через запятую никогда не желательно.У вас должна быть таблица со схемой, например:
- field_id (например, «ABS»)
- name (например, «Антиблокировочная тормозная система»)
И еще одна таблица, например:
- user_id (здесь я выведу немного из названия
addUsers
- какие поля / поля у вас в addUser теперь идентифицируют человека) - field_id (т. Е. Внешний ключ к вышеуказанной таблице
field
)
Обратите внимание, что в этой таблице может быть много строк для каждого человека (1, 'ABS'), (1, 'DriverAirbag')
Но тогда ваш запрос может стать
SELECT field, name
FROM user_field
INNER JOIN field USING (field_id)
Теперь вы получаете по одной строке для каждого поля (не требуется explode
!), И каждая строка содержит как удобное для компьютера, так и понятное для человека имя.