2010-04-29 3 views
5

PHP에 mysql의 LIKE 함수의 유사점이 있습니까?함수처럼 mysql의 PHP 유사 언어

예. :

like('goo*','google.com');//is true 
like('*gl*','google.com');//true 
like('google.com','google.com')//also true 

내가 정규식 rullez 알고 있지만 경우에 일치시킬 문자열을이

답변

6

으로 수행 할 수 있습니다.

+5

5.3 이전에는 리눅스에서만 작동한다. (아마 FYI는 문제가되지 않을 것이다.) – notJim

+0

@notJim, 고마워, 정말로 고마워. :) – DCrystal

0

에 도달하기 위해 어떤 해결책을 모르는입니다 실제로 glob 기능을 확인, 디렉토리에 파일 : http://php.net/manual/en/function.glob.php

를 그 시나리오의
+3

같은 일도 아닙니다. – notJim

+0

glob()는 괜찮지 만 평범한 문자열에는 사용할 수 없다고 생각합니다. – DCrystal

+0

'glob()'는 임의의 문자열이 아닌 디렉토리의 파일에만 해당합니다. 내가 해명 할 답변을 편집했습니다. –

3

모두 fnmatch 기능을 살펴보십시오 strpos

+0

고마워, 난 그냥 다른 바퀴를 만들고 싶지 않아 :) – DCrystal

+0

어떻게 substr 좋은거야?! 새로운 용도로 사용해야할까요? – OIS

+0

lol ... 나는 strpos를 의미했다. – Rich

8

처음 들어 strpos 사용

like('goo*','google.com');  --> strpos('goo','google.com') === 0 

다음 하나를 당신이 strpos 사용할 수 있습니다

like('*gl*','google.com');  --> strpos('gl', 'google.com') !== false; 

을 그냥 사용할 수있는 다음과 같다 :

like('google.com','google.com') --> 'google.com' == 'google.com' 

의 물론, 당신은 그들 모두를위한 정규식을 사용할 수 있습니다 :

like('goo*','google.com');  --> preg_match('#^goo.*$#','google.com') 
like('*gl*','google.com');  --> preg_match('#^.*gl.*$#', 'google.com'); 
like('google.com','google.com') --> preg_match('#^google\.com$#', 'google.com') 

편집 : 그럼, 시작 부분에 ^, 그리고 마지막에 $을 배치, 정규식 .**를 교체하고 .의 탈출하여 패턴을 변환합니다.