- Я хочу изменить эту функцию так, чтобы она преобразовывала более двух символов новой строки в новую строку. В противном случае он преобразует все символы новой строки в пространство. Поэтому я бы хотел, чтобы это было в формате абзаца. Здесь он преобразует все символы новой строки в пробел.
- Он преобразует правильный регистр предложений. Но в случае, если я нашел одно слово, первое слово которого является заглавным, мне нужна функция, чтобы игнорировать это. Иногда, если есть существительное, оно должно быть с заглавной буквы. Мы не можем это изменить, маленький случай. В противном случае, если существительное содержит более двух заглавных символов, кроме первого символа, преобразуйте его в нижний регистр.
function sentence_case($string) {
$sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
$new_string = '';
foreach ($sentences as $key => $sentence) {
$new_string .= ($key & 1) == 0?
ucfirst(strtolower(trim($sentence))) :
$sentence.' ';
}
$new_string = preg_replace("/\bi\b/", "I", $new_string);
//$new_string = preg_replace("/\bi\'\b/", "I'", $new_string);
$new_string = clean_spaces($new_string);
$new_string = m_r_e_s($new_string);
return trim($new_string);
}
Подробнее здесь: https://stackoverflow.com/questions/823 ... e-function
Мобильная версия