fork(1) download
  1. <?php
  2.  
  3. /**
  4.  * 28.04.2015 (9:45)
  5.  * Shift.php
  6.  * PhpStorm
  7.  */
  8.  
  9. header("Content-Type: text/plain; charset=utf-8");
  10.  
  11. // $sentence = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было. Но, все OK";
  12. // $sentence = "roses are red,and violets are blue.whatever you do i'll keep , it for you.";
  13. $sentence = "привет.есть 2 функции, preg_split и explode ,не понимаю,в чем между ними , разница.";
  14.  
  15. /* Делает первую букву в строке заглавной */
  16. function makeFirstLetterUppercase($text)
  17. {
  18. $firstLetter = mb_substr($text, 0, 1);
  19. $firstLetter = mb_strtoupper($firstLetter);
  20. $otherLetters = mb_substr($text, 1);
  21. $text = $firstLetter . $otherLetters;
  22. return $text;
  23. }
  24.  
  25. /* Исправляет текст */
  26. function fixText($text)
  27. {
  28. $result = '';
  29. /* Разбиваем текст на предложения */
  30. $regexp = '![.]!u';
  31. $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY);
  32. foreach ($parts as $key => $sentence) {
  33. $sentence = trim($sentence); /* Обрезаем пробелы в начале и в конце стороки */
  34. $sentence = makeFirstLetterUppercase($sentence); /* Пропускаем через функцию, делающую первую букву заглавной */
  35. /* Собираем предложения в единый текст */
  36. if ($key > 0) {
  37. $result = $result . ". " . $sentence;
  38. } else {
  39. $result .= $sentence;
  40. }
  41. }
  42. /* Исправляем ошибку вида "слово, " и " ,слово" */
  43. $regexpComma = '![,]\s+|\s+[,]!';
  44. $result = preg_replace($regexpComma, ', ', $result);
  45. /* Исправляем ошибку вида "слово,слово" */
  46. $regexpRemoveComma = '!(,)([a-zA-Zа-яёА-ЯЁ])!u';
  47. $result = preg_replace($regexpRemoveComma, '$1 $2', $result);
  48. /* Удаляем лишние пробелы */
  49. $regexpRemoveSpace = '!\s{2,}!';
  50. $result = preg_replace($regexpRemoveSpace, ' ', $result);
  51. return $result . ".";
  52. }
  53.  
  54. $result = fixText($sentence);
  55.  
  56. echo "{$result}\n";
  57.  
Success #stdin #stdout 0.02s 24448KB
stdin
Standard input is empty
stdout
Привет. Есть 2 функции, preg_split и explode, не понимаю, в чем между ними, разница.