fork(1) download
  1. <?php
  2. /* Делает первую букву в строке заглавной */
  3. function makeFirstLetterUppercase($text) {
  4. //Берём первый символ, делаем его большим.
  5. return mb_strtoupper(mb_substr($text, 0, 1, 'UTF-8'), 'UTF-8') . mb_substr(mb_convert_case($text, MB_CASE_LOWER, 'UTF-8'), 1, mb_strlen($text), 'UTF-8');
  6. }
  7. //исправляет текст
  8. function fixText($text) {
  9. $offersFix=array();
  10. // разделяем текст про предложениям.
  11. $offers = preg_split("/(?<=[.])/u", $text, -1, PREG_SPLIT_NO_EMPTY);
  12. //Удаляй хоть 100 пробелов.
  13. $regexpSpace="/(\s){2,100}/ui";
  14. //В каждом предложении ищем пробелы и исправляем.
  15. foreach (($offers) as $offer) {
  16. $someoffer=preg_replace($regexpSpace, '' ,$offer);
  17. //Пихаем исправленное предложение без повторных пробелов
  18. $upperLetterOffer=makeFirstLetterUppercase($someoffer);
  19. array_push($offersFix, $upperLetterOffer);
  20. }
  21. $fixedtext= implode(" ", $offersFix);
  22. //Осталось проверить на пробелы после препинаний.
  23. $fixedtext=preg_replace("/([[:punct:]]+)\s*/", '$1 ', $fixedtext);
  24. $fixedtext=preg_replace("/\s*([[:punct:]]+)/", '$1 ', $fixedtext);
  25. return $fixedtext;
  26. }
  27.  
  28. //$text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
  29. // Для тестов
  30. // $text = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
  31. //$text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  32. $text="много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
  33. $result = fixText($text);
  34. echo "{$result}\n";
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
Много их в петербурге,  молоденьких дур,  сегодня в атласе да бархате,  а завтра,  поглядишь,  метут улицу вместе с голью кабацкою. . .  В самом деле,  что было бы с нами,  если бы вместо общеудобного правила:  чин чина почитай,  ввелось в употребление другое,  например:  ум ума почитай?  какие возникли бы споры!