如何比较这个字符串:
commodity/search/oil/branch/index
有了这个 :
commodity/search/*/branch/index
尽管“油”被替换为其他词,但它应该返回 true。
$match = preg_match("/commodity\/search\/(.*)\/branch\/index/", "commodity/search/someotherword/branch/index");
$match
如果找到匹配项,将为真(或某个值评估为真,如 1)。
注意:以上将匹配任何额外的路径,例如commodity/search/some/other/word/branch/index
如果你只想匹配一个单词,而不是类似于路径结构的东西,那么你可以尝试这样的事情:
$match = preg_match("/commodity\/search\/[A-Za-z0-9_-]+\/branch\/index/", "commodity/search/some-OTHER_word/branch/index");
这只会匹配大小写的 az 字符、数字、连字符和下划线。根据需要进行调整。
PHP 有一个内置函数,称为fnmatch()。
它提供了基本通配符的用法。
<?php
if (fnmatch('commodity/search/*/branch/index', 'commodity/search/oil/branch/index')) {
echo "It matches!";
}
但是,非 POSIX 兼容系统不支持它(请参阅 PHP 手册)。