Php удалить все двойные пробелы

Php удалить все двойные пробелы

не уполучилось) Объясните плиз почему? И как удалить перевод строки? Спасибо!

$str = preg_replace('#\pZ#su', ' ', $str);

о, да. вы знаете толк в извращениях 😆

php
$string = str_replace(‘ ‘, ‘ ‘, str_replace(«\r«, », str_replace(«\n«, », $string)));

DySprozin
По-моему извращение в данном случае — три вызова функции
Хотя производительность нужно тестировать, но читабельность точно хуже, имхо

$string = "я пытаюсь удалить все двойные пробелы";
$string = preg_replace('#\pZ#su', ' ', $string);
echo $string;
$string = preg_replace('/\s+/', ' ', $string);
$string = preg_replace('/\s/', ' ', $string);

DySprozin
я не уверен насчет очевидности оптимального варианта между твоим и моим
еще раз — нужно тестировать, причем желательно на большом участке текста для большей дельты

а как мне удалить перенос строки например вот в этом тексте

if((BrowserDetect.browser!=«Explorer»))
213123

Читайте также:  Php json decode перенос строки

123231

321231
>

$string = preg_replace('/\s/s', ' ', $string);

Invis1ble
а уже проверять ничего не надо: и так понятно, что в данном случае метод с функой str_replace — фуфло (; вот почему:

php
$str = ' '; //4 пробела
$str = str_replace(' ', ' ', $str); //заменяем 2 пробела на 1, в результате получим два раза по пробелу
echo $str; //выведет 2 пробела :-(

так а я о чем? это просто дополнительный аргумент

ПС. На самом деле я сам противник фанатичного использования регэкспов там, где можно без них обойтись, если что

;;это просто дополнительный аргумент
скорее, неоспоримый аргумент

;;На самом деле я сам противник
так и запишем в личном теле

Источник

Как удалить повторяющиеся пробелы в тексте?

Допустим имеется текст, в котором между словами есть двойные, тройные и более пробелы. Задача убрать лишние пробелы, оставив только по 1 пробела.

Я написал такой код, но почему то не работает:

$text1 = "Длинный объемный текст с лишние пробелами"; $arr = explode(" ", $text1); for($i=0;$icount($arr);$i++) { $text2 = $text2." ".trim($arr[$i]); } $text2 = trim(text2);

если через echo выводить на экран текст, то выводится нормально, без лишних пробелов, но когда этот текст добавляю в базу, там они опять с лишними пробелами без изменений. как решить проблему?

Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %
Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %? Вот.

Как удалить повторяющиеся символы в строке?
Есть необычная задача. Переменная с набором символов, как вырезать все повторяющиеся символы.

Как удалить повторяющиеся элементы двух массивов?
Имеется три массива $m_1, $m_2 и $m_3. Первый массив содержит буквенно-цифровые элементы.

Как удалить лишние пробелы, переносы и экранировать символы в строке?
на вход приходит строка. нужно в любой приходящей строке удалять переносы на следующую строку.

$text = preg_replace('/ /',' ',$text1);
$text = preg_replace('|[\s]+|s', ' ', $text1);

Хм, затем что когда человек открывает тему, он читает ее сначала и зачем ему информация 3х летней давности?

не.. не такой подход.
Извините, но я по себе сужу: я прихожу в форум для чего? Чтобы получить ответ на некий вопрос. Форум тематический (подходящий). Есть вероятность, что такой вопрос (или подобный) уже задавали.
Соответственно, я перед тем как флудить возможно тем же самым лучше сначала поищу.
О! нашел! (как в данном случае) — но немножко не то.. соответственно, я уточнил вопрос. И мне тут же в этой теме ответили.

Тема стала более универсальной и при этом не размножилась.

На мой взгляд это как раз так и должно работать.

P.S. Да, возможно я и неправ, но кажется, что прав таки

ЦитатаСообщение от Laroux Посмотреть сообщение

Возможно и я не прав, просто я привык, к тому что для каждого вопроса создается своя тема. Т.е. если что то нужно, я ищу на форуме, если не нахожу(или нахожу подобное) , то создаю новую тему со своим вопросом, с отсылкой на старую. Но действительно не будем разводить холиваров

Удалить повторяющиеся строки
Для составления некой базы уникальной потребовалось удалять все те строки которые ранее попадались.

Удалить не повторяющиеся элементы массива
Здравствуйте! нужна функция типа array_keys(array_flip()) наоборот у меня есть массив В.

Удалить пробелы в utf-8
Пробелы между формами(( в windows-1251 перевожу — всё окей(именно с формами, а текст — билиберда).

Источник

Удаление регулярными выражениями в PHP

Примеры регулярных выражений для удаления данных из текста.

Текст и символы

Удалить все пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[\s]', '', $text); echo $text; // abcde

Удалить двойные пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[ ]+', ' ', $text); echo $text; // a b c d e

Удалить лишние пробелы перед знаками препинания

$text = 'Многие ! известные ? личности , и по сей день .'; echo preg_replace("/\s+([\.|,|!|\?]+)/", '\\1',$text);
Многие! известные? личности, и по сей день.

Оставить в тексте только буквы, цифры и пробел

$text = 'Многие известные. личности, по: сей день.'; echo mb_eregi_replace("[^a-zа-яё0-9 ]", '', $text);
Многие известные личности по сей день

Удалить цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('5', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz

Удалить латинские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[a-z]', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789

Удалить русские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[а-яё]', '', $text);

Удалить все буквы и цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[\w]', '', $text);

Удалить все кроме цифр и пробелов

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[^0-9 ]', '', $text);

Удалить табуляцию

Удалить переносы строк

echo preg_replace("/[\r\n]/", '', $text);

Удалить определенное количество символов

Примеры удаляют девять символов в начале и конце текста.

// Удаление с начала $text = mb_eregi_replace("^.(.*)$", '\\1', $text); echo $text; // Удаление с конца $text = mb_eregi_replace("(.*)[^.]$", '\\1', $text); echo $text;

Удалить текст до определенного символа

Данные регулярные выражения удаляют все что находится до первого искомого символа, а также пробел который идет за ним.

$text = 'Многие известные. личности, по: сей - день.'; // Удалить до пробела echo preg_replace("/^(.*?)(\s)(.*?)$/", '\\3', $text); // Удалить до "." echo preg_replace("/^(.*?)(\.\s)(.*?)$/", '\\3', $text); // Удалить до "," echo preg_replace("/^(.*?)(,\s)(.*?)$/", '\\3', $text); // Удалить до ":" echo preg_replace("/^(.*?)(:\s)(.*?)$/", '\\3', $text); // Удалить до "-" echo preg_replace("/^(.*?)(-\s)(.*?)$/", '\\3', $text);
известные. личности, по: сей - день. личности, по: сей - день. по: сей - день. сей - день. день.

Удалить текст после символа

$text = 'Многие известные. личности, по: сей - день.'; // Удалить после пробела echo preg_replace("/^(.+?)\s.+$/", '\\1', $text); // Удалить после «.» echo preg_replace("/^(.+?)\..+$/", '\\1', $text); // Удалить после «,» echo preg_replace("/^(.+?),.+$/", '\\1', $text); // Удалить после «:» echo preg_replace("/^(.+?):.+$/", '\\1', $text); // Удалить после «-» echo preg_replace("/^(.+?)-.+$/", '\\1', $text);
Многие Многие известные Многие известные. личности Многие известные. личности, по Многие известные. личности, по: сей

Удалить скобки с их содержимым

$text = '(Casio G-SHOCK) [GW-9200-1ER] '; // Удаление (. ) echo preg_replace("/(.*?)\(.*?\)\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)\[.*?\]\s?(.*?)/is", '\\1\\3', $text); // Удаление echo preg_replace("/(.*?)\<.*?\>\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)<.*?>\s?(.*?)/is", '\\1\\3', $text);

Комментарии

Удалить комментарии из HTML

$text = '

Текст текст

'; echo preg_replace('/\s?\s?/', ' ', $text);

Удаление многострочных комментариев «/* . */»

$text = " /** * Описание функции и тд * @param name * @param defaultValue * @returns */ document.write(' '); "; echo preg_replace("/\/\*(.*?)\*\//sm", '', $text);

Удалить комментарии «//» и «#»

$text = " // По возрастанию: ksort($array); # По убыванию: krsort($array);"; $res = preg_replace("/\/\/.*\n/", '', $text); $res = preg_replace("/#.*\n/", '', $res); echo $res;

Комментарии SQL « —. »

$text = " SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' -- OR `title` LIKE '%KEY%' OR `text` LIKE '%KEY%'"; echo preg_replace("/\s--.*\n/", '', $text);
SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' OR `text` LIKE '%KEY%'

Нумерация строк

$text = ' 1 text text text. 2 text text text. 3 text text text. 1. text text text. 2. text text text. 3. text text text. 1) text text text. 2) text text text. 3) text text text.'; echo preg_replace('/(\d)+(\.|\)|\s)+([\s]?)+(.*)/', '\\4', $text);
text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text.

Хештеги

$text = 'broken beat, nu jazz, downtempo #nujazz, #downtempo, #intelligent'; echo preg_replace('/#([\S]+)/', '', $text);
broken beat, nu jazz, downtempo 

Источник

УДАЛИТЬ ДВОЙНЫЕ ПРОБЕЛЫ PHP

Для удаления двойных пробелов в PHP можно воспользоваться функцией preg_replace(), которая позволяет производить замену с помощью регулярных выражений. Символ двойного пробела в регулярных выражениях обозначается как \s <2,>— это означает два и более пробелов подряд. Для замены нужно указать символы-заменители (в данном случае — один пробел) и исходную строку. Пример использования функции preg_replace() для удаления двойных пробелов: $text = «Это пример текста с двойными пробелами.»;$text = preg_replace(‘/\s<2,>/’, ‘ ‘, $text);echo $text; // «Это пример текста с двойными пробелами.» Также можно использовать функцию str_replace(), чтобы заменить двойные пробелы на одинарные, но в этом случае необходимо применять функцию несколько раз до тех пор, пока все двойные пробелы не будут удалены. $text = «Это пример текста с двойными пробелами.»;while(strpos($text, » «) !== false) < $text = str_replace(" ", " ", $text);>echo $text; // «Это пример текста с двойными пробелами.» Вместо цикла while можно применить рекурсивную функцию для повторяющегося вызова str_replace().

Remove duplicate value in php array manually — learn php step by step — DSA PHP

Двойные или одинарные кавычки в строках в PHP

Углубление в типы данных — Базовый курс PHP-7

Refactoring PHP code to remove static methods

Как убрать лишние пробелы в Excel?

PHP С НУЛЯ ДО ДЖУНА БЫСТРО 3. БАЗА ДАННЫХ — ОБНОВЛЕНИЕ, УДАЛЕНИЕ

how to delete value from php array manually — data structure and php logic learn step by step

Как удалить лишние пробелы в строке? JavaScript RegExp

Источник

Как убрать двойные пробелы в php?

@ gussie.jones  Вы можете просто заменить все двойные пробелы с одинарными пробелами используя str_replace фукнцию в PHP:

php $text = 'Test Test2 test3 test4'; // Test Test2 test3 test4 echo str_replace(' ', ' ', $text);

Вы можете использовать функцию preg_replace() для удаления двойных пробелов в строке. Например:

$string = 'This string has multiple spaces.'; $new_string = preg_replace('/s+/', ' ', $string); echo $new_string; // This string has multiple spaces. 

Этот код заменит все последовательности нескольких пробелов на один пробел. Если вы хотите удалить все двойные пробелы, а не только последовательности нескольких пробелов, вы можете использовать следующую регулярную выражению:

$new_string = preg_replace('/s/', ' ', $string);

Этот код заменит все двойные пробелы на один пробел. Обратите внимание, что это регулярное выражение также заменит тройные, четверные и т. д. пробелы.

Источник

Оцените статью