fork download
  1. <?php
  2.  
  3.  
  4. $text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
  5. //$text = "roses are red,and violets are blue.whatever you do i'll keep it for you.";
  6. //$text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
  7.  
  8. /* Делает первую букву предложения заглавной */
  9. function makeFirstletterUppercase(&$parts) {
  10. $letters = mb_substr($parts, 0, 1); //выделяем первую букву
  11. $upLetters = mb_strtoupper($letters); //переводим ее в верхний регистр
  12. $parts = mb_substr($parts, 1); //вделяем предложение кроме первой буквы
  13. $parts = $upLetters . $parts; //"склеиваем" результат
  14. }
  15.  
  16. function fixText($text) {
  17. $regexp = '/( *)([,.;:])( *)/';
  18. $parts = explode(".", $text); //разбиваем текст на предложения
  19.  
  20. /* по идее надо еще разбивать в ? и !, но не понял как можно их в explode запихать */
  21. foreach ($parts as &$value) { //удаление пробелов в начале и конце строк
  22. $parts = trim($parts);
  23. }
  24. var_dump($parts);
  25. array_walk($parts, 'makeFirstLetterUppercase');
  26. //array_walk($parts, 'makeFirstLetterUppercase'); //замена первых букв предложений на заглавные
  27. $result = implode(". ", $parts); //объединение предложений в строку
  28. $result = preg_replace($regexp, '$2 ', $text);
  29. return $result;
  30.  
  31. }
  32.  
  33. $result = fixText($text);
  34. echo "{$result}\n";
Success #stdin #stdout #stderr 0.02s 24192KB
stdin
Standard input is empty
stdout
NULL
ну что. не смотрел еще black mesa. я собирался скачать, но все как-то некогда было. 
stderr
PHP Warning:  trim() expects parameter 1 to be string, array given in /home/2WwBpt/prog.php on line 24
PHP Warning:  Invalid argument supplied for foreach() in /home/2WwBpt/prog.php on line 23
PHP Warning:  array_walk() expects parameter 1 to be array, null given in /home/2WwBpt/prog.php on line 27
PHP Warning:  implode(): Invalid arguments passed in /home/2WwBpt/prog.php on line 29