2012-01-03 4 views
0

에 입력하십시오. text more text "empty space"과 같은 문자열이 있습니다. "empty space"의 공백을 어떻게 바꾸고이 공백 만 ###?으로 바꿀 수 있습니까?공백을 ###로 대체하십시오. ""사이의 텍스트를 PHP 문자열

+1

게시물에 서명하지 마십시오. –

+0

""사이의 빈 공간 만 텍스트로 바꾸고 싶습니다. 그래서 reult는 텍스트처럼 보일 것입니다 more text "empty ### space" – user998163

+1

이 질문은 전반적으로 혼란 스럽습니다. "text more text"대신 실제 Exaple을 제공합니다. "이것은 텍스트 문자열이며 어떻게 든 변경 될 수 있기를 바랍니다." 이 문자열을 정확히 어떻게 변경했는지 표시합니다. –

답변

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

모든 공백을 처리합니다. 이것이 큰 텍스트 안에 있다면, 패턴은 빈 \ sspace이고 교체는 빈 것입니다. ### space –

+0

위의 제 코멘트를보십시오. – user998163

1
$string = "My String is great"; 
$replace = " "; 
$replace_with = "###"; 

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

이 당신을 위해 그것을해야한다.

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

업데이트 된 질문을 본 후 George는 정답을 제공했습니다. –

+0

위의 내 의견을 참조하십시오. – user998163

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

+1이 필요하지 않을 때 정규 표현식을 사용하지 않는 경우 +1 –

+0

@George 텍스트가 바뀔 것입니다 ... "빈 공간"은 시연 용으로 만 사용되었습니다 – user998163

+0

@ user1067506 귀하의 의견에서 볼 수 있듯이 이것은 원래 게시물에서 분명하지 않았습니다. 다른 솔루션으로 작업하기. –

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; 
관련 문제