Строчный второй символ в строке php - PullRequest
2 голосов
/ 22 июня 2019

У меня есть строка, которая выглядит следующим образом:

[House-3-BLUE]

Я хочу преобразовать ее, используя PHP, в:

[house-3-BLUE]

Кажется, это должно быть просто, но я не могу понять, как это сделать, посмотрев на дюжину примеров.

Ответы [ 2 ]

2 голосов
/ 22 июня 2019

Вы можете использовать substr_replace.

$str = "[House-3-BLUE]";
echo substr_replace($str, strtolower(substr($str, 1, 1)), 1, 1);

Попробуйте онлайн: https://3v4l.org/oDoXB

Чтобы сделать то же самое, но убедиться, что он безопасен для Unicode, вам нужно разбить строку на 3 части, используя mb_substr и затем объединить его обратно в целую строку:

$str = "?House-3-BLUE]";
echo mb_substr($str,0,1) . mb_strtolower(mb_substr($str,1,1)) . mb_substr($str,2);

Попробуйте онлайн: https://3v4l.org/NYe0r

2 голосов
/ 22 июня 2019

Это, вероятно, сработает, и регулярное выражение может не потребоваться:

$str = "[House-3-BLUE]";
echo "[" . strtolower(substr($str, 1, 1)) . substr($str, 2);

выход

[house-3-BLUE]

Рекомендации

Вероятно, это должны быть более простые способы, такие как Дхарман совет:

Вы должны использовать lcfirst, затем

$str = "[House-3-BLUE]";
echo "[" . lcfirst(substr($str, 1));
...