如何使用PHP通配符?

时间:2014-03-23 19:13:00

标签: php wildcard

我有一个在客户注销时删除一组cookie的功能,我的问题是每次在注销时删除cookie - 当客户返回到网站并重新生成后再生成,并在生成时生成再次将一个数字附加到末尾。

Cookie名称生成如下,

affiliate_account_code_1
affiliate_account_code_2
affiliate_account_code_3

并且可以一直到100年代。

我的问题是在PHP中是否有一种方法可以说,如果字符串符合此条件affiliate_account_code_*,就像在终端中使用通配符一样?有没有办法尝试捕获附加到字符串的任何数字。

搜索后

  

PHP通配符

我发现有一个fnmatch()函数,从未使用它我不确定它是否适合上述。

1 个答案:

答案 0 :(得分:2)

使用正则表达式preg_match

可以轻松实现这一点
preg_match('/affiliate_account_code_(\d+)/', $string, $matches);

\d+匹配无限(至少一个)位数。可以使用$matches[1]检索括号之间的匹配。

演示:

php> $string = 'affiliate_account_code_1';
'affiliate_account_code_1'
php> preg_match('/affiliate_account_code_(\d+)/', $string, $matches);
int(1)
php> $matches;
array (
  0 => 'affiliate_account_code_1',
  1 => '1',
)