fork download
  1. <?php
  2. $test = array();
  3. $test[] = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
  4. $test[] = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
  5. $test[] = "привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.";
  6.  
  7. function makeFirstLetterUppercase($text) {
  8. return mb_strtoupper(mb_substr($text, 0, 1)).mb_substr($text, 1);
  9. }
  10.  
  11. function addSpacingInPunctuation($text) {
  12. return preg_replace('/\\s*([,:;]+)\\s*/u', '$1 ', $text);
  13. }
  14.  
  15. /* исправляет текст */
  16. function fixText($text) {
  17. $matches = preg_split("/(?<=[!?.])\\s*(?=\\w\\d)/u", $text);
  18. $matches = array_map('makeFirstLetterUppercase', $matches);
  19. $matches = array_map('addSpacingInPunctuation', $matches);
  20. return implode(' ', $matches);
  21.  
  22. }
  23. foreach($test as $text){
  24. $result = fixText($text);
  25. echo "{$result}\n";
  26. }
  27. ?>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Ну что.      не смотрел еще black mesa.я собирался скачать, но все как-то некогда было.
Roses are red, and violets are blue.whatever you do i'll keep it for you.
Привет.есть 2 функции, preg_split и explode, не понимаю, в чем между ними разница.