我一直在寻找几个小时试图找到解决方案。我试图确定 REQUEST URI 是否合法并从那里分解。
$samplerequesturi = "/variable/12345678910";
为了确定它是否合法,第一部分variable
只有字母并且长度可变。第二部分是数字,总共应该有 11 个。我的问题是转义正斜杠,以便在 uri 中匹配。我试过了:
preg_match("/^[\/]{1}[a-z][\/]{1}[0-9]{11}+$/", $samplerequesturi)
preg_match("/^[\\/]{1}[a-z][\\/]{1}[0-9]{11}+$/", $samplerequesturi)
preg_match("/^#/#{1}[a-z]#/#{1}[0-9]{11}+$/", $samplerequesturi)
preg_match("/^|/|{1}[a-z]|/|{1}[0-9]{11}+$/", $samplerequesturi)
还有一些我现在不记得了。
该请求通常会出错:
preg_match(): Unknown modifier '|'
preg_match(): Unknown modifier '#'
preg_match(): Unknown modifier '['
编辑:我想我应该声明 REQUEST URI 是已知的。我试图证明整个字符串以确保它不是伪造的字符串,即确保第一组只有小写字母,第二组只有 11 个数字。