@Caspergreen

Обрезка текста в php для получения фамилии и инициалов?

Здравствуйте! Есть в бд, данные, в одном поле "Фамилия Имя Отчество". Выводиться через переменную $name. Нужно все это дело выводить в виде Фамилия И.О. При этом данные на другой странице должны выводиться полностью. Т, е вариант добавить еще поля для имени, отчества. Не подходит.
  • Вопрос задан
  • 7756 просмотров
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
$sName = "Фамилия Имя Отчество";
echo preg_replace('~^(\S++)\s++(\S)\S++\s++(\S)\S++$~u', '$1 $2.$3.', $sName);

Не совпадающие с маской данные - т.е. три слова, разделённые между собой как минимум одним пробельным символом - будут выведены без изменений.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
regexp - рулЁз мегафорева!)
$shortFIO = preg_replace('#(.*)\s+(.).*\s+(.).*#usi', '$1 $2.$3.', $name);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы