2014-11-10 2 views
1

간단한 검색 입력 작업을하고 있습니다. 그것은 공간으로 용어를 나눕니다. 이것은 잘 작동합니다. 그러나 다른 언어 공간을 인식하지 못합니다.모든 언어 공간을 표준화 된 공간으로 바꿉니다.

다른 언어 공간을 표준화 된 공간으로 preg_replace하고 싶습니다.

예를 들어,

$pattern  = array(
    //insert other language space codes here (I don't know what they are or how to find them) 
); 
$replacement = ' '; 
$string  = "日本語 の スペース です"; 

$cleaned = preg_replace($pattern, $replacement, $string); 
+1

'preg_replace ('/ \ s /', '', $ string)'을 (를) 사용해 보셨습니까? 어쩌면 정규식은 다른 언어 공간을 잡을 것입니다. – sjagr

+0

@sjagr 불행히도 그것을 잡지 못했습니다. 특정 공간에 입력하면 공간을 포착합니다. 그 동안 나는 아마도 내가 할 것입니다. –

답변

2

어떤 공백 문자와 일치합니다 \s 이스케이프 시퀀스와 함께 당신의 패턴으로 u 수정을 사용합니다. 이것은 (코드 사용)과 같이 보일 것입니다 :

$pattern = '/\s/u'; 
$replacement = ''; 
$string  = "日本語 の スペース です"; 

$cleaned = preg_replace($pattern, $replacement, $string); 

var_dump($cleaned); 

출력 :

string(30) "日本語のスペースです" 

the manual에서 :

유 (PCRE_UTF8는)

이 수정 추가 켜집니다 Perl과 호환되지 않는 PCRE의 기능. 패턴 및 주제 문자열은 UTF-8로 처리됩니다. 이 수정자는 Unix에서는 PHP 4.1.0 이상에서, win32에서는 PHP 4.2.3에서 사용할 수 있습니다. 패턴과 주체의 UTF-8 유효성은 PHP 4.3.5부터 확인됩니다. 잘못된 주체는 preg_ * 함수가 아무 것도하지 않게합니다. 유효하지 않은 패턴은 레벨 E_WARNING의 오류를 트리거합니다. 5 및 6 옥텟 UTF-8 시퀀스는 PHP 5.3.4 이후 유효하지 않은 것으로 간주됩니다 (PCRE 7.3 2007-08-28). 이전에는 유효한 UTF-8로 간주되었습니다.

관련 문제