2011-04-17 172 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

相關問題