如果您能够将所有字符串作为数组获取并foreach()
像这样循环它们:
$string_array = array('string', 'string1', 'string2', 'does-not-match');
$needle = 'string';
$results = array();
foreach($string_array as $key => $val):
if (fnmatch($needle, $val):
$results[] = $val;
endif;
endforeach;
最后,您应该结束匹配的条目$needle
。作为替代fnmatch()
你可以使用preg_match()
和作为模式/string/i
$string_array = array('string', 'string1', 'string2', 'does-not-match');
$needle = '/string/i';
$results = array();
foreach($string_array as $key => $val):
if (!empty(preg_match($needle, $val)):
$results[] = $val;
endif;
endforeach;
请注意,使用 empty() 并传递 preg_match() 的结果时可能会出现问题:
在 PHP 5.5 之前,empty() 只支持变量;其他任何事情都会导致解析错误。换句话说,以下内容将不起作用:empty(trim($name))。相反,使用 trim($name) == false。
PHP 版本 5.3.x < 5.4 不会出现错误