Как лучше всего достичь ucwords ($ str,» ‘-«), используя mb_convert_case, со строкой, подобной o’hare?

#php

#php

Вопрос:

Следующий код:

 <?php

$str = "tom o'hare mcdonald-wittern";
$utf = mb_convert_case ( $str ,MB_CASE_TITLE , "UTF-8" );
$words = ucwords($str," '-");

echo $utf;
echo "rn";
echo $words;
 

Результаты в выводе:

 Tom O'hare Mcdonald-Wittern
Tom O'Hare Mcdonald-Wittern
 

Я выполняю массовый импорт текста в формате UTF-8, и хотя mb_convert_case, похоже, работает почти так же хорошо, как ucwords с предоставленным списком разделителей, кажется, что в o’hare отсутствует буква H после ‘.

Я использую php 7.4. Как я могу достичь того же результата с помощью mb_convert_case, который я могу легко получить с помощью приведенного выше синтаксиса, используя uc_words?

Комментарии:

1. Есть ли какая-либо причина, по которой вы не можете использовать ucwords в этом случае?

2. Верхний комментарий в документах касается именно этой проблемы. php.net/manual/en/function.mb-convert-case

3. спасибо @Sammitch, я протестировал функцию, и она выполняет свою работу.