从正斜杠之间的URL获取值

时间:2014-06-24 11:29:24

标签: php regex

从url获取正斜杠之间的值。像

http://localhost/test/manage-users/1230/

输出:1230

我也找到了一些帮助完整的答案,但他们不能正确地满足我的情况。他们的网址是硬编码的,即他们的网址无法更改,但在我的情况下,如果用户从不同的网页重定向,则会更改网址。

Get the value of a URL after the last slash

用户从不同页面重定向时的不同网址。

  1. http://localhost/test/manage-users/1230/?value=1230
  2. http://localhost/test/manage-users/1230/
  3. http://localhost/test/manage-users/1230/test1/?value=1230
  4. 所以我希望regex完全填满我的所有案件。

3 个答案:

答案 0 :(得分:1)

您需要的

RegEx

\d+(?=\/)

$re = '/\d+(?=\/)/'; 
$str = 'http://localhost/test/manage-users/1230/?value=1230'; 

preg_match($re, $str, $matches);

它适用于您提到的所有三种情况。

Check Demo

答案 1 :(得分:0)

你可以试试下面的正则表达式来获得斜杠之间的数字,

\/(\d+)\/

DEMO

您的PHP代码将是,

<?php
$re = '~\/(\d+)\/~'; 
$str = 'http://localhost/test/manage-users/1230/?value=1230'; 
preg_match($re, $str, $matches);
echo $matches[1];
?> // 1230

答案 2 :(得分:0)

我不知道是否可能,但我有一个建议。使用URL重写。

随意塑造您的网址。例如

http://localhost/test/manage-users.php?value=1230

从这个链接获得一些帮助: http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

你可以看起来像:

http://localhost/test/manage-users/1230/