PHP类似于mysql的函数

DCr*_*tal 5 php function

假设这是一个小问题,但在php中是否有类似mysql的LIKE函数?

所以,例如:

like('goo*','google.com');//is true
like('*gl*','google.com');//true
like('google.com','google.com')//also true
Run Code Online (Sandbox Code Playgroud)

我知道正则表达式rullez,但不知道任何解决方案达到此目的

dav*_*nal 8

首先,使用strpos:

like('goo*','google.com');      -->  strpos('goo','google.com') === 0
Run Code Online (Sandbox Code Playgroud)

下一个,您可以使用strpos:

like('*gl*','google.com');      -->  strpos('gl', 'google.com') !== false;
Run Code Online (Sandbox Code Playgroud)

接下来你可以使用equals:

like('google.com','google.com') -->  'google.com' == 'google.com'
Run Code Online (Sandbox Code Playgroud)

当然,你可以为所有这些使用正则表达式:

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')
Run Code Online (Sandbox Code Playgroud)

编辑:将您的模式转换为正则表达式,^在开头放置一个,$在结尾放置一个,然后替换*.*和转义..


Mat*_* G. 6

看看这个fnmatch功能.

  • 在5.3之前,这仅适用于Linux(可能不是问题,只是FYI.) (5认同)