|
|
|
| Кто поможет, как можно сделать следующее:
1) В тексте каждый первый символ после найденных точек сделать большим (ucfirst). ?
2) Найти последний символ в тексте и если это не точка, то поставить после него точку. ??? | |
|
|
|
|
|
|
|
для: Владимир22
(12.08.2007 в 12:17)
| |
<?php
$string = "String with dot. String with dot";
$string = preg_replace("/\.(\s*)([a-zA-ZА-Яа-яЁё]+)/e", "'.\\1' . ucfirst('\\2')", $string);
if($string[strlen($string) - 1] != ".") $string .= ".";
?>
|
Правда, если и впраду нужно только учитывать точки, а на другие знаки препинания наплевать. | |
|
|
|
|
|
|
|
для: Unkind
(12.08.2007 в 12:44)
| | Unkind, спасибо, всё работает. Единственное, что если в тексте есть переводы строк, то первый пункт (замена символов на большие) уже не работает... С этим как-то можно бороться? | |
|
|
|
|
|
|
|
для: Владимир22
(12.08.2007 в 13:22)
| | Переводы строк где? Если после точки (новый абзац), то такого быть не должно, т.к. \s включает в себя и переводы строк.
Вот такой код:
<?php
$string = "String with dot.\r\n\t string with dot";
$string = preg_replace("/\.(\s*)([a-zA-ZА-Яа-яЁё]+)/e", "'.\\1' . ucfirst('\\2')", $string);
if($string[strlen($string) - 1] != ".") $string .= ".";
echo($string);
?>
|
У меня выдаёт "String with dot. String with dot.". | |
|
|
|
|
|
|
|
для: Unkind
(12.08.2007 в 14:58)
| | Всё правльно, Unkind. Я просто перед обработкой ещё менял c помощью str_replace \r на <br>. Разобрался, ещё раз ОГРОМНОЕ СПАСИБО! | |
|
|
|