2012-01-03 78 views
0

我有一個像這樣的字符串text more text "empty space"。 如何更換"empty space"中的空格,並且只有###這個空格?使用###替換空字符在PHP中的字符串「」之間的文本

+1

請不要在您的文章上簽名。 – 2012-01-03 22:07:38

+0

我只想替換「」之間的文本空格。所以reult應該看起來像文本更多的文字「空###空間」 – user998163 2012-01-03 22:13:36

+1

這個問題是總體混亂。而不是「文本更多文本」..提供一個真正的Exaple。 「這是一個文本字符串,我希望它以某種方式被改變。」這顯示字符串確切地如何改變。 – 2012-01-03 22:32:21

回答

1

這個怎麼樣,有沒有正則表達式:

$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; 
+0

似乎工作。謝謝! – user998163 2012-01-03 22:40:21

1
$somevar = "empty space"; 
$pattern = "/\s/"; 
$replacement = "###"; 
$somevar2 = preg_replace($pattern, $replacement, $somevar); 
echo $somevar2; 
+0

這將做所有的空間。如果這是一個大塊文本,模式將是空的\ sspace和替換將是空的###空間 – 2012-01-03 22:11:17

+0

請看看我上面的評論。 – user998163 2012-01-03 22:14:19

1
$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

+0

喬治在看到更新後的問題後提供了正確的答案。 – 2012-01-03 22:11:50

+0

請看看我上面的評論。 – user998163 2012-01-03 22:14:35

3
$string = 'text more text "empty space"'; 
$search = 'empty space'; 
str_replace($search, 'empty###space', $string); 
+0

+1在沒有必要時不使用正則表達式 – 2012-01-03 22:15:03

+0

@George文本將被改變...「空白空間」僅用於演示 – user998163 2012-01-03 22:17:29

+0

@ user1067506我從您的評論中看到,這在原始文章中並不清楚。處理另一個解決方案。 – 2012-01-03 22:18:12

1

後您編輯評論

也許它不是最好的解決辦法,但你可以做這樣的:

$string = 'text more text "empty space"'; 
preg_match('/(.*)(".*?")$/', $string, $matches); 
$finaltext = $matches[1] . str_replace(' ', '###', $matches[2]);