Многобайтовая строка по-прежнему является строкой, и ее разрыв с радостью разделит ее на любой заданный вами разделитель. Я предполагаю, что они, вероятно, будут вести себя одинаково в большинстве случаев. Если вас беспокоит конкретная ситуация, рассмотрите возможность использования этого тестового сценария:
<?php
$test = array(
"ὕβρις",
"путин бандит",
"Дерипаска бандит",
"Трамп наша сука"
);
$delimiter = "д";
foreach($test as $t) {
$explode = explode($delimiter, $t);
echo "explode: " . implode("\t", $explode) . "\n";
$split = mb_split($delimiter, $t);
echo "split : " . implode("\t", $split) . "\n\n";
if ($explode != $split) {
throw new Exception($t . " splits differently!");
}
}
echo "script complete\n";
Стоит отметить, что и explode (), и mb_split () имеют один и тот же список параметров - без какой-либо ссылки на язык или кодировку символов. Вы также должны понимать, что то, как ваши строки определены в PHP, зависит от того, где и как вы получите свой разделитель и строку, которую нужно разобрать / разделить. Ваши строки могут исходить из текстового или CSV-файла, отправки формы в браузере, вызова API через javascript, или вы можете определить эти строки прямо в вашем PHP-скрипте, как я здесь.
Возможно, я ошибаюсь, но я полагаю, что обе функции будут работать, разыскивая экземпляры разделителя в разбиваемой строке и будут разбивать их.