[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: удалить пробелы регуляркой
savelikan
Привет всем) подскажите, как регуляркой удалить повторяющиеся nbsp?
$historyText = preg_replace('~[ ]+~is', ' ',$historyText);


_____________
Одесса - мой город!)))
Arh
$historyText  = preg_replace('#( )+#', ' ', $historyText );

Круглые скобки вместо квадратных.

А вот как поменять     на 1   чё то я задался вопросом)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
FatCat
Цитата (Arh @ 26.06.2017 - 20:15)
А вот как поменять     на 1   чё то я задался вопросом)

while(stristr($historyText, '  '))$historyText = str_replace('  ', ' ', $historyText );


_____________
Бесплатному сыру в дырки не заглядывают...
Ron
Цитата (Arh @ 26.06.2017 - 21:15)
А вот как поменять     на 1   чё то я задался вопросом)

Например вот так:
preg_replace('/(\s* \s*)+/', ' ', $a);
biggrin.gif

Тут еще удаление ненужных пробелов вокруг   Можно вместо плюса указать {2,} короче затюнить.
Arh
Ron
Так будет &nbsp c пробелом)
Странно как то.
echo str_replace(' ', ' ', ' ');


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
Arh, ты что имеешь ввиду, я вообще не въехал?
Arh
Ron
Ты предложил так заменить
preg_replace('/(\s* \s*)+/', ' тут у тебя пробел', $a);

Получается ты заменишь не на   а на  +пробел, а если убрать пробел то у тебя получиться  nbsp;

echo str_replace(' ', ' ', ' '); тоже выдаёт  nbsp; вместо  

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
А, я понял. Пробел конечно же лишний, его нужно убрать (отредактировал). Эт когда постил, &nbsp заменялся на " ". Пока боролся, лишний пробел не заметил.

Но в целом выражение работает как нужно, в том числе скопировал твой str_replace в результате работы у меня один раз &nbsp, а не два. И на версии 5.6 и 7.0 всё в порядке. =)
Arh
Cтранно у меня на работе win7, openserver php7 и дома win10 openserver php7 выдаёт  nbsp; причёт не 2   а именно  nbsp; второй без &

echo str_replace('1', '1', '1'); // 1
echo str_replace(' ', ' ', ' '); //  nbsp;

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
Arh, так это браузер шалит всего-навсего. А я из консоли работаю с таким скриптам "пролетными", быстрее ИМХО. Если обернуть в <pre> (или любой другой тэг) ничего нет, всё работает как нужно.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.