php - 类似于 MySQL 函数的模拟

标签 php function

假设这是一个小问题,但是在 PHP 中有类似 MySQL 的 LIKE 函数吗?

所以,例如

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

我知道正则表达式 rullez,但不知道如何解决这个问题

最佳答案

首先,使用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')

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

关于php - 类似于 MySQL 函数的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739489/

相关文章:

php - mysql_fetch_assoc() 报错

php - Opencart 2 将自定义客户数据添加到管理客户资料页面

php - 加载 mysqli 扩展时为 "version libmysqlclient_18 not defined in file libmysqlclient.so.18"

php - 使用 Paypal-Php-SDK 创建发票失败并出现 "Can not deserialize instance of java..."错误

c++ - 从返回类型为 'void' 的函数获取结果,而结果变量是输入参数之一 - C++

c++ - 使用指针c++在函数中反转cstring数组

javascript - jQuery 旋转函数 Img 选择

php - 如何在 Shopware 6 插件 ZIP 中包含重叠的 Composer 依赖项?

c++ - 类循环

function - 如何在 F# 中定义相互依赖的函数?