[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена пробела на любой другой символ
grawest
Здрасте.
Как заменить все пробелы в строке, это понятно:
$string = "слово1 слово2 слово3 слово4";
$pattern = "/\s/";
$replacement = "символ на который заменить";
preg_replace($pattern, $replacement, $string);

А как заменить только первый или последний, а остальные не трогать?
Спасибо.



Спустя 11 минут, 37 секунд (1.12.2010 - 16:48) aH6y написал(а):
grawest
Начало:
/^\s/

Конец:
/\s+$/

Спустя 42 минуты, 25 секунд (1.12.2010 - 17:30) grawest написал(а):
По другому спрошу.
Мне нужно чтобы все это было в цикле и за каждый раз заменялся один пробел, т.е. сначала заменить после первого слова, показать результат, потом после второго и т.д

Спустя 28 минут, 8 секунд (1.12.2010 - 17:58) vasa_c написал(а):
strpos ?

Спустя 2 часа, 10 минут, 5 секунд (1.12.2010 - 20:08) grawest написал(а):
strpos найдет пробел, а как его обработать (заменить), не трогая при этом остальные пробелы?
можно ли в шаблон /\s/ добавить какой-нибудь модификатор, чтобы функция preg_replace обработала только первый попавшийся пробел?

Спустя 1 минута, 1 секунда (1.12.2010 - 20:09) DySprozin написал(а):
grawest
;;А как заменить только первый или последний
э... и в чем проблема? (;
$string = "слово1 слово2 слово3 слово4";
$pattern = "/^(\w)\s(.*)\s(\w)$/";
$replacement = "$1символ на который заменить$2символ на который заменить$3";
preg_replace($pattern, $replacement, $string);


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

$string = "слово1 слово2 слово3 слово4";
$pattern = "/^(\w)\s$/";
$replacement = "$1символ";
while(preg_match($string,$pattern)){
$string=preg_replace($pattern, $replacement, $string);
echo $string;
}


$string = "слово1 слово2 слово3 слово4";
$pattern = "/^([\w0-9]+)\s/";
$replacement = "$1символ";
while(preg_match($pattern,$string)==1){
$string=preg_replace($pattern, $replacement, $string);
echo $string,"<br>";
}


add поправил))

Спустя 12 часов, 20 минут, 5 секунд (2.12.2010 - 08:29) grawest написал(а):
DySprozin, спасибо! То что надо.

Спустя 1 час, 59 минут, 2 секунды (2.12.2010 - 10:28) grawest написал(а):
;) Теперь другая фигня...
Если записать вот так, то почему-то скрипт уходит в бесконечный цикл
$file_name = "text.txt";
$file = fopen($file_name, "r");
$content = file_get_contents($file_name);
fclose($file);
$pattern = "/^([\w|\w-\w|.|,|?|!]+)\s/";
$replacement = "$1символ";
while(preg_match($pattern, $content)==1) {
$string = preg_replace($pattern, $replacement, $content);
}
echo $string;

Есть какие-то особенности работы функции file_get_contents?

Спустя 25 минут, 43 секунды (2.12.2010 - 10:54) kirik написал(а):
Цитата (grawest @ 2.12.2010 - 02:28)
Если записать вот так, то почему-то скрипт уходит в бесконечный цикл

Так он preg_match в любом случае будет находить совпадения, ибо не меняется ни исходная строка ни паттерн..

Спустя 40 минут, 55 секунд (2.12.2010 - 11:35) grawest написал(а):
ааа biggrin.gif , невнимательность... Всем спасибо.

Спустя 10 часов, 20 минут, 55 секунд (2.12.2010 - 21:56) DySprozin написал(а):
grawest
обращайся wink.gif
Быстрый ответ:

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