我有一个在客户注销时删除一组cookie的功能,我的问题是每次在注销时删除cookie - 当客户返回到网站并重新生成后再生成,并在生成时生成再次将一个数字附加到末尾。
Cookie名称生成如下,
affiliate_account_code_1
affiliate_account_code_2
affiliate_account_code_3
并且可以一直到100年代。
我的问题是在PHP中是否有一种方法可以说,如果字符串符合此条件affiliate_account_code_*
,就像在终端中使用通配符一样?有没有办法尝试捕获附加到字符串的任何数字。
搜索后
PHP通配符
我发现有一个fnmatch()
函数,从未使用它我不确定它是否适合上述。
答案 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',
)