3v4l.org

run code in 200+ php & hhvm versions
<?php error_reporting(-1); mb_internal_encoding('utf-8'); $text = <<<EOF Тест:::Тест.много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было!!!бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например::ум ума почитай?какие возникли... бы споры! ну что? не смотрел еще black mesa!я собирался скачать ,но все как-то некогда было. привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница. EOF ; /* Делает первую букву в строке заглавной */ function makeFirstLetterUppercase($text) { $text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1, NULL); return $text; } /* исправляет текст */ function fixText($text) { $regexpSpace = '/(\\s)*(\,)/iu'; // Удалит пробелы до запятой $regexp = '/([а-яёa-z])([\,\:\!\?\.]+)([а-яёa-z])/iu'; $sentences = preg_split('/((?<=[.?!]))/iu', $text, 0, PREG_SPLIT_NO_EMPTY); // Разбить текст foreach ($sentences as $sentence) { $sentences = trim($sentence); // Обрезает пробелы между предложениями $sentencesFix[] = makeFirstLetterUppercase($sentences); // Сделает все предложения с большой буквы } $text = implode($sentencesFix); // Собирает в текст все предложения $text = preg_replace($regexpSpace, '$2', $text); // Удаляет пробелы до запятой $text = preg_replace($regexp, '$1$2 $3', $text); // Ставит пробел после (, :, !, &, .) return $text; } echo fixText($text);
based on SIPGr
Output for 5.6.0 - 5.6.30, hhvm-3.12.14 - 3.17.3, 7.0.0 - 7.2.6
Тест::: Тест. Много их в Петербурге, молоденьких дур, сегодня в атласе да бархате, а завтра, поглядишь, метут улицу вместе с голью кабацкою... В самом деле, что было!!! Бы с нами, если бы вместо общеудобного правила: чин чина почитай, ввелось в употребление другое, например:: ум ума почитай? Какие возникли... Бы споры! Ну что? Не смотрел еще black mesa! Я собирался скачать, но все как-то некогда было. Привет. Есть 2 функции, preg_split и explode, не понимаю, в чем между ними разница.