|
|
|
| нужно заменить n пробелов подряд на 1 в середине строки. подскажите, пожалуйста, функцию, которая может это сделать. trim удаляет только по краям. можно использовать str_replace(" ", " ", $str), но это только если 2 пробела. а если их 3 или более? хотя, ее можно зациклить... но может быть есть способ проще? | |
|
|
|
|
|
|
|
для: irr
(26.10.2005 в 07:11)
| | Зацикли, пока 2 пробела есть, и всё - ну выполнится она 3-4 раза - да и фиг с ней - она быстрее и дешевле любой регулярки. | |
|
|
|
|
|
|
|
для: OZ_
(26.10.2005 в 07:17)
| | спасибо. кстати, на этом форуме эта функция осуществлена - я наверху писал 2 пробела, а они заменились на один. надеюсь, еще автор подскажет, как он это сделал. | |
|
|
|
|
|
|
|
для: irr
(26.10.2005 в 07:27)
| | А это делается автоматически - из WEB-форм текст приходит уже почищенный. Некоторые люди бьются над тем, как этого избежать :) | |
|
|
|
|
|
|
|
для: irr
(26.10.2005 в 07:11)
| | Воспользуйтесь функцией chop(); | |
|
|
|
|
|
|
|
для: DDK
(26.10.2005 в 10:27)
| | это псведноним rtrim(). удаляет пробелы из конца строки. и как мне это поможет? мне-то надо из середины. | |
|
|
|
|
|
|
|
для: irr
(26.10.2005 в 11:41)
| |
<?
$text = ereg_replace(" +", " ", $good);
|
| |
|
|
|
|
|
|
|
для: P@Sol
(26.10.2005 в 11:47)
| | браво! то что нужно, спасибо огромное! | |
|
|
|
|
|
|
|
для: DDK
(26.10.2005 в 10:27)
| | А не проще ли воспользоваться регулярными выражениями?
<?
$text = "sdfk dsfjkd dskdjfkd kdsfkljds dsfj";
$text = "preg_replace("|([\s]{2,})|", ' ', $text)";
print $text;
?>
|
| |
|
|
|
|
|
|
|
для: antf
(26.10.2005 в 12:01)
| | спасибо! так наверное тоже можно, но предыдущий пример короче :). | |
|
|
|