fork download
  1. <?php
  2.  
  3.  
  4. //$text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
  5. // Для тестов
  6. //$text = 'roses are red,and violets are blue.whatever you do i\'ll keep it for you.';
  7.  
  8. $text="много их в Петербурге?молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!";
  9. // $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  10.  
  11. /* Делает первую букву в строке заглавной */
  12. function makeFirstLetterUppercase($text) {
  13. // $reg='/^[а-яёa-z]/u';
  14. // $match=preg_match_all($reg,$text,$match);
  15. // var_dump($match[0]);
  16. // $text=preg_replace($reg,mb_strtoupper($match[0]),$text);
  17. $firstLetter=mb_strtoupper(mb_substr($text,0,1));
  18. $text=$firstLetter.mb_substr($text,1);
  19. return $text;
  20.  
  21. }
  22. $text=makeFirstLetterUppercase($text);
  23.  
  24. function fixText($text) {
  25.  
  26. $regSpacesAfter='/([.,:?;!])\\s*()/u';
  27. $text=preg_replace($regSpacesAfter,"$1 $2",$text);
  28. $mat=[];
  29. $regSpacesBefore='/()\\s+([.,:?;!])/u';
  30. preg_match_all($regSpacesBefore,$text,$mat,PREG_SET_ORDER);
  31. $count=count($mat);
  32. for($i=0;$i<$count;$i++){
  33. preg_match_all($regSpacesBefore,$text,$mat,PREG_SET_ORDER);
  34. $text=preg_replace($regSpacesBefore,$mat[0][2],$text, 1);
  35.  
  36. }
  37.  
  38.  
  39. $regToUpper='/[?!.]\\s([а-яёa-z])/u';
  40. $match=[];
  41. preg_match_all($regToUpper,$text,$match,PREG_SET_ORDER);
  42. $countMatch=count($match);
  43. for($i=0;$i<$countMatch;$i++){
  44. preg_match_all($regToUpper,$text,$match,PREG_SET_ORDER);
  45. $text=preg_replace($regToUpper,mb_strtoupper($match[0][0]),$text,1);
  46.  
  47. }
  48. return $text;
  49. }
  50.  
  51. $text = fixText($text);
  52. echo "{$text}\n";
  53. ?>
Success #stdin #stdout 0.02s 52488KB
stdin
Standard input is empty
stdout
Много их в Петербурге? Молоденьких дур, сегодня в атласе да бархате, а завтра, поглядишь, метут улицу вместе с голью кабацкою... В самом деле, что было бы с нами, если бы вместо общеудобного правила: чин чина почитай, ввелось в употребление другое, например: ум ума почитай? Какие возникли бы споры!