php中通配符的实现
该方法摘自Laravel5的Event getWildcardListeners
作用如下:
`item.*` -> `item.new`
-> `item.edit`class Str {
public static function is($pattern, $value)
{
if ($pattern == $value) return true;
$pattern = preg_quote($pattern, '#');
$pattern = str_replace('\*', '.*', $pattern) . '\z';
return (bool) preg_match('#^' . $pattern . '#', $value);
}
}该功能使用正则实现
*替换成.*匹配所有字符\z这个转义序列从来没用过,查了手册是说不受修正符的影响,其实这边应该和$是一样的