Вы не можете больше использовать функцию в качестве значения замены с preg_replace()
.Вот почему используется preg_replace_callback()
.
preg_replace_callback()
ожидает функцию во втором параметре.
preg_replace_callback('/_([a-z])/ui', function($m) { return " " . strtoupper($m[1]); }, $_colName)
Вам не нужен модификатор шаблона s
, потому что вы не '• используя в своем шаблоне любые символы .
.
Вы можете избежать substr()
, если будете использовать группу захвата и назначить $m[1]
в своей функции замены.
Хм, если я понимаю ваше намерение, вам вообще не нужно регулярное выражение ...
Код: ( Демо )
$string = "what_the_hey_now";
// echo ucwords(str_replace("_", " ", $string)); // not multibyte safe
echo mb_convert_case(str_replace("_", " ", $string), MB_CASE_TITLE, "UTF-8");
Вывод:
What The Hey Now