2010-11-30 4 views
1

영어와 그리스어 제품 문자열이 모두 포함 된 데이터베이스를 검색 할 사이트에 검색 창이 있습니다. 모든 종류의 특수 문자 (예 : /)에서 텍스트 입력을 지우려고합니다. , '] [% & _ 등을 입력하고 공백으로 교체하거나 완전히 삭제하십시오. 그들도 두 인스턴스는, ^^처럼 & &, [[미리 등유니 코드 허용시 특정 문자 교체 (PHP)

내가 preg_replace이다 만지작되었지만 해결책을 찾을 수 없습니다 ...

감사를 삭제해야합니다.

+1

그래서 어떤 문자 *가 허용됩니까? a-z 및 α-ω? 아 - 라틴어가 아닌 그리스어가 아닌 "특수"문자는 어떻습니까? – deceze

답변

2

preg_replace를 사용하면 찾고있는 것을 할 수 있습니다. 다음 예에서 모든 a-z 또는 A-Z도 아니고/_ | + - 문자

preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str); 

당신이 그 목록에 허용하려는 문자를 추가하고 당신의 기능이있을 것이다 '(아무것도, 빈 문자열)'로 대체됩니다.

다른 방법은 str_replace()이지만 다른 함수 호출에서 제거하려는 모든 요소를 ​​하나씩 삽입해야합니다.

나는 내가 마지막이 함께했다

+0

좋습니다, 고마워요. 나는 그로부터 시작하여 실행 가능한 것을 생각해 냈습니다. 내 생각 엔 .. –

0

왜 배열을 만들고 str_replace를 사용합니까?

$unallowedChars = array("^", "&", "/", "."); // more for your choosing 

$searchContent = str_replace($unallowedChars, "", $searchContent); 

otherwords는 아무것도 ''와 배열의 모든 값을 대체.

2

도움이되기를 바랍니다 :

$term = preg_replace("/[^\p{Greek}a-zA-Z0-9\s]+/u", '', $term); 

내가 원하는 것을 위해 작동하는 것 같다. 그것은 그리스 문자 (심지어 악센트 포함), 영숫자 및 공백을 허용합니다. 다른 모든 것을 공백으로 대체합니다. 빠른 응답 녀석을 가져 주셔서 감사합니다.