JBZoo\Utils\Str::like PHP Method

like() public static method

Check if a given string matches a given pattern.
public static like ( string $pattern, string $string, boolean $caseSensitive = true ) : boolean
$pattern string Parttern of string exptected
$string string String that need to be matched
$caseSensitive boolean
return boolean
    public static function like($pattern, $string, $caseSensitive = true)
    {
        if ($pattern == $string) {
            return true;
        }
        // Preg flags
        $flags = $caseSensitive ? '' : 'i';
        // Escape any regex special characters
        $pattern = preg_quote($pattern, '#');
        // Unescape * which is our wildcard character and change it to .*
        $pattern = str_replace('\\*', '.*', $pattern);
        return (bool) preg_match('#^' . $pattern . '$#' . $flags, $string);
    }

Usage Example

Example #1
0
 public function testLike()
 {
     isTrue(Str::like('a', 'a'));
     isTrue(Str::like('test/*', 'test/first/second'));
     isTrue(Str::like('*/test', 'first/second/test'));
     isTrue(Str::like('test', 'TEST', false));
     isFalse(Str::like('a', ' a'));
     isFalse(Str::like('first/', 'first/second/test'));
     isFalse(Str::like('test', 'TEST'));
     isFalse(Str::like('/', '/something'));
 }