Предположим, что это - вопрос о куске, но является там аналогом MySQL КАК функция в PHP?
Так, например.
like('goo*','google.com');//is true
like('*gl*','google.com');//true
like('google.com','google.com')//also true
Я знаю regex rullez, но не знаю решения достигнуть этого
Для первого используйте strpos
:
like('goo*','google.com'); --> strpos('goo','google.com') === 0
Следующее, вы можете использовать strpos
:
like('*gl*','google.com'); --> strpos('gl', 'google.com') !== false;
Далее вы можете просто использовать equals:
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')
Edit : чтобы преобразовать ваши шаблоны в регулярное выражение, поместите ^
в в начале и $
в конце, затем замените *
на . *
и экранируйте .
с.
В случае, если строки, которые вы хотите сопоставить, на самом деле являются файлами в каталоге, проверьте функцию glob
: http://php.net/manual/en/function.glob.php
все эти сценарии могут быть выполнены с помощью strpos