Я знаю, есть много похожих вопросов, и вы скажете, что это дубликат, но я не могу найти решение! Мне нужно удалить несколько пробелов и написать только одно место. В моем коде я написал 'REPLACE' вместо '', просто чтобы уточнить. Это код, который я испытал, и не работает:Удалить несколько пробелов - PHP не находит пробелы
$string=$data['post_content'];
$filtered1=preg_replace("/[^\S\r\n]+/",'REPLACE',$string);
$filtered2=preg_replace("#[^\S\r\n]+#",'REPLACE',$string);
$filtered3=preg_replace("#[^\S\r\n][^\S\r\n]+#",'REPLACE',$string);
$filtered4=preg_replace('#[^\S\r\n][^\S\r\n]+#','REPLACE',$string);
$filtered5=preg_replace('#!\s+!#', 'REPLACE', $string);
$filtered6=preg_replace("/(?<=\s)\x20|\x20(?=\s)/", "REPLACE", $string);
$filtered7=preg_replace("/([\s])\1+/", "REPLACE", $string);
$filtered8=preg_replace("#[^\S\r\n][^\S\r\n]#",'REPLACE',$string);
$filtered9=preg_replace("'/\s+/'",'REPLACE',$string);
$testing1=str_replace(" ","REPLACE",$string);
$testing2=str_replace("\s",'REPLACE',$string);
$testing3=str_replace(array(' '),'REPLACE',$string);
$testing4=str_replace(' ',"REPLACE",$string);
$testing5=str_replace(" ","REPLACE",$string);
$testing6=str_replace(array(" "),'REPLACE',$string);
$testing7=str_replace(array("\s\s"),'REPLACE',$string);
Это тест строка:
это тест 1 2 3 4 6 Конец
И результаты были для $filtered1
и $filtered2
:
этоREPLACE isREPLACEaREPLACEtestREPLACE1 REPLACE2 REPLACE3 REPLACE4 REPLACE6 REPLACEend.
Для всех остальных, результат был:
это тест 1 2 3 4 6 Конец
Это как PHP не находит пространства, даже explode
является не находя двойных пространств "". Я использую PHP 5.5.1
, если вы хотите, чтобы удалить все несколько пробелов вы можете использовать 'preg_replace («/ \ s + /»,»», $ строка);' (замените все 1 или более экземпляра пространство с одним пространством) – bansi
По-прежнему возвращает тот же результат: «это тест 1 2 3 4 6 end» – mgreca
Каков ваш ожидаемый результат? и вы хотите совместить ровно 2 пробела, вы можете использовать 'preg_replace ('/ \ s {2} /', '', $ string);' – bansi