Замените пустые пробелы на ### из текста между "" в строке в PHP - PullRequest
0 голосов
/ 04 января 2012

У меня есть такая строка text more text "empty space". Как заменить пробел в "empty space" и только этот пробел на ###?

Ответы [ 5 ]

3 голосов
/ 04 января 2012
$string = 'text more text "empty space"';
$search = 'empty space';
str_replace($search, 'empty###space', $string);
1 голос
/ 04 января 2012

Как насчет этого, без регулярных выражений:

$text = 'foo bar "baz quux"';
$parts = explode('"', $text);
$inQuote = false;

foreach ($parts as &$part) {
    if ($inQuote) { $part = str_replace(' ', '###', $part); }
    $inQuote = !$inQuote;
}

$parsed = implode('"', $parts);
echo $parsed;
1 голос
/ 04 января 2012

Отредактировано после ваших комментариев

Возможно, это не лучшее решение, но вы можете сделать это так:

$string = 'text more text "empty space"';
preg_match('/(.*)(".*?")$/', $string, $matches);
$finaltext = $matches[1] . str_replace(' ', '###', $matches[2]);
1 голос
/ 04 января 2012
$string = "My String is great";
$replace = " ";
$replace_with = "###";

$new_string = str_replace($replace, $replace_with, $string);

Это должно сделать это для вас.http://www.php.net/manual/en/function.str-replace.php

1 голос
/ 04 января 2012
$somevar = "empty space";
$pattern = "/\s/";
$replacement = "###";
$somevar2 = preg_replace($pattern, $replacement, $somevar);
echo $somevar2;
...