PHP URL 正则表达式和参数

标签 php regex

我想匹配我的 404 页面上的 URL,并基于此我想将用户重定向到特定位置。

网址是http://domain.com/there/12345

// example: /there/12345
$request = $_SERVER['REQUEST_URI'];

if (preg_match('', $request)) {

}

我应该输入什么 REGEX 才能得到这个?一旦测试成功,如何在常量 there 之后立即检索此 ID (12345)?

最佳答案

您要使用的正则表达式是:

$str=$_SERVER['REQUEST_URI'];   
$regex = '/\/there\/(\d+)/';
$matches=array();
preg_match($regex, $str, $matches);
var_dump($matches)

这给出了

array
  0 => string '/there/12345' (length=12)
  1 => string '12345' (length=5)

注意 \d+ 周围的括号捕获任何 \d+ 匹配的内容(即连续的数字 0-9 字符串)

如果你想要一个十六进制的 id(比如 12ABF),那么你应该将 \d+ 更改为 [a-zA-Z\d]+

关于PHP URL 正则表达式和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375032/

相关文章:

php - ->bind_global() 在 Kohana 3.3 中隐藏 View

php - 如何为构造函数指定 void 返回类型

php - 对于下面描述的问题,Solr 是一个很好的解决方案吗?

php - 在 Zend Framework 中调用 MYSQL 存储函数(不是存储过程)

regex - 使用正则表达式更改 bash 中的行

php - 使用 (SELECT) 和 (INSERT INTO) 将数据从 PHP 表单插入 MySQL 数据库

regex - 我将教一些开发人员正则表达式 - 有哪些好的家庭作业问题?

python - re.sub 将所有内容替换为列表中的最后一项

java - 括号之间的简单正则表达式

java - 除特定情况外如何匹配单个字符