2012-06-09 46 views
0

我是新來製作網站。 作爲一個個人項目,我想做一個URL縮短服務。除了一件事以外,一切都會好起來的。從PHP中使用此URL的數據獲取數據?使用這個?id = 77

我無法處理傳入的請求。

例如。 如果有人輸入www.examp.le/Dnd5Je 我希望能夠從URL中獲取最後6個字母,然後在數據庫中查找它。

問題是我無法弄清楚如何獲取字母而不使用$ _GET數組並在URL中使用?id = 77等標識符。

我有點迷路,對任何關於如何提取最後6個字母的幫助都很有幫助。 感謝

回答

3

您可以重寫URL在.htaccess文件:

RewriteEngine On 
RewriteRule ^([^/.]+)/$ index.php?target=$1 
RewriteRule ^$ index.php 

將上面的代碼重寫的URL,例如www.examp.le/foobar123/www.examp.le/index.php?target=foobar123。然後,您可以使用$_GET變量讀取$_GET['target']的值。

+0

只有當他使用Apache。 –

+0

完美的作品,非常感謝你!我欠你很多時間!但是有沒有一種方法可以省去url中的最後一個「/」?因爲沒有最後一個「/」就不能工作。再次感謝..非常有幫助! – Robbie

+0

其實,我想通了....只是從上面的代碼中刪除最後一個「/」!再次感謝你! – Robbie

1

嘗試使用$_SERVER['REQUEST_URI']

1

$ _GET數組未被填充的原因是因爲www.examp.le/Dnd5Je中接收的是沒有GET信息的有效URL。在問號(?)之後找到GET信息作爲鍵/值對

爲了實現您要實現的目標,您需要讓Web服務器「重寫」URL。如何做到這一點取決於您使用的是哪個Web服務器。對於Apache的文檔都可以在這裏

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

0

發現你可以使用$_SERVER['REQUEST_URI']。它將包含您的示例中的前導斜槓,即/Dnd5Je,您可以輕鬆刪除它。

欲瞭解更多信息,請考慮Manual for $_SERVER