2016-06-20 3 views
-1

문자열의 모든 하이픈을 공백으로 바꾸려면 str_replace()를 사용해야합니다. 충분히 쉬운 :PHP str_replace() - 대체 공간으로 대체 하시겠습니까?

$string = "Some-test-string"; 
$string = str_replace('-', ' ', $string); 

것은 너무 더러운 느낌 str_replace()의 "교체"부분에 ' ' (빈 공간 문자열)를 사용합니다. 또한 부서지기 쉬운 것처럼 보입니다 ...보기 흉하게 보입니다.

더 좋은 옵션이 있습니까? 나는 "replacement"섹션에서 정규식 패턴을 사용하려고 시도했지만 작동하지 않았다.

이상적으로,이 같은 일이 가능하면 좋을 것 :

$string = "Some-test-string"; 
$string = str_replace('-', '/\s/', $string); 

감사합니다!

편집 됨 : 제안에 따라 모든 preg_replace() 호출이 str_replace()로 대체되었습니다.

+1

공간에 대한 16 진수 값을 사용할 수 있습니다 : "preg_replace ("/ [-] +/","\ x20 ", $ string);''', 그러나 나는 그것을 깨끗하게 해준다. –

+0

str_replace를 사용하면 더 나을 것이다. 나는 그것이 작동하고 쉽게 이해되는 한 너무 부서 지거나 추악 해 보이는 것에 대해 걱정하지 않을 것입니다. 대신 ''대신 ''을 사용합니다. –

+0

Abdullah Bakhsh - 문자 그대로 \ x20으로 대체됩니다. 문자열에서 공백을 원한다는 것을 분명히해야합니다 ... preg_match() 호출에서 대체 방법을 찾기 위해 대체 방법을 찾으려고합니다. – mbbentz

답변

1

이 경우 정규식을 사용할 이유가 없습니다. 왜 더 간단한 함수를 사용하지 않을까요? strtr()?

$string = "Some-test-string"; 
$string = strtr($string, '-', ' '); 
+0

감사합니다 ShiraNai7 - 나는 그 정규식 패턴이 너무 간단하여 preg_replace()를 요구한다는 것을 알게되면 str_replace()를 사용하여 이미 전환했습니다. 나는 그것을 반영하기 위해 나의 질문을 업데이트했다. – mbbentz

관련 문제