2011-04-17 123 views
1

我希望有人能帮助我,我已经创建的URL是这样的从网址获取号码的最简单方法是什么?

/this/is/a/test/index.asp 
/this/is/a/test/index-1.asp 
/this/is/a/test/index-2.asp 
/this/is/a/test/index-3.asp 

什么是剥离从URL数量最简单的方法是什么?

而不是使用像这样的变量:

/this/is/a/test/index.asp?no=1 
/this/is/a/test/index.asp?no=2 
/this/is/a/test/index.asp?no=3 

创建我使用的URL数量动态调用页面上的内容变量。

如果网址是:/this/is/a/test/index-3.asp它应该使用3,并根据它匹配的内容,就好像我是叫

没有= 3

我使用PHP相似?此...

的URL结构将始终具有可变定义为匹配最后一个“ - ” [该号码]“的.asp”

由于

杰拉尔德·费雷拉

+0

一开始参数是URL的一部分。那么,你为什么要这样做? – halfdan 2011-04-17 21:44:50

+0

嗨Halfdan,因为如果谷歌命中我的网页'index-1.asp'那么它会显示内容与index.asp相同,虽然它实际上是不同的。如果我是正确的,你将需要按照链接来获取URL来传递值。我正在创建干净的网址,但已经使用htaccess - 在这种情况下,它无法帮助我。 – 2011-04-17 21:48:21

回答

1

你应该能够相匹配出来:

if (preg_match('/\-(\d+)\.asp$/', $_SERVER['REQUEST_URI'], $a)) { 
    $pageNumber = $a[1]; 
} else { 
    // failed to match number from URL 
} 
+0

好的,谢谢James正是我要找的东西......你能告诉我什么是'd' meand在正则表达式中 – 2011-04-17 21:55:40

+1

@Gerald:'\ d'是小数的缩写。 – mario 2011-04-17 21:57:02

+0

好酷,谢谢 – 2011-04-17 22:01:37

3

你可以使用mod_rewrite到URL模式映射到实际的URL。你可以达到你想要用类似下面的东西是什么:

RewriteRule ^index-([0-9]+).asp$ index.asp?no=$1 
+0

嗨,尼克 - 我已经在使用mod_rewrite来构建页面,我不认为我可以用它来处理这个事件。 – 2011-04-17 21:52:11

+0

嗨尼克 - 也许只是为了放弃一下。我应该在上面的问题中提到它,但是索引并不是一个常数。因此,我不能真正使用它,因为它有很大的差异,并且可能会与我已有的重写规则冲突 – 2011-04-17 22:04:10

相关问题