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. $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  8.  
  9. /* Делает первую букву в строке заглавной */
  10. function makeFirstLetterUppercase($text) {
  11. $text = ltrim ($text);
  12. $text = mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
  13. return $text;
  14. }
  15. /* Корректирует пробелы вокруг символа (,) */
  16. function correctSpacesAroundChar($text, $char) {
  17.  
  18. $parts_of_sentence = explode($char, $text);
  19.  
  20. $text = '';
  21. foreach ($parts_of_sentence as $part) {
  22. $part = ltrim($part);
  23. $part = rtrim($part);
  24. $text .= $part . ', ';
  25. }
  26. $text = mb_substr($text, 0, mb_strlen($text)-2);
  27. return $text;
  28. }
  29.  
  30. /* исправляет текст */
  31. function fixText($text){
  32. $sentences = preg_split("/([^!\?\.?]+[!\?\.?]+)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
  33. foreach ($sentences as $id => $sentence ) {
  34. $sentences[$id] = makeFirstLetterUppercase($sentence);
  35. $sentences[$id] = correctSpacesAroundChar($sentences[$id], ',');
  36. }
  37. $text = implode(' ', $sentences);
  38. return $text;
  39. }
  40.  
  41. $result = fixText($text);
  42.  
  43. echo "{$result}\n";
  44.  
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
Привет. Есть 2 функции, preg_split и explode, не понимаю, в чем между ними разница.