早些时候我使用的是http://localhost/profile.php?username=joe
,但现在我使用htaccess使网址看起来不错,所以这就像现在的http://localhost/joe
。在我做这个之前,这就是问题所在
$username = $_GET['username'];
然后用它来获取用户名,但现在我该怎么做?我看过其他帖子,但他们似乎使用了更长,更复杂的网址。
我可以这样做
$url = 'http://localhost/joe';
echo parse_url($url, PHP_URL_PATH);
它似乎工作正常,但我在实际结果之前得到/
因此我得到/joe
,我想要joe
。我也试过stripslashes
,但似乎没有用。那么任何想法?
答案 0 :(得分:1)
答案 1 :(得分:1)
在左侧网站上修剪结果,以避免删除或替换属于实际值的斜杠。
$result = ltrim($path, '/');
答案 2 :(得分:0)
使用str_replace()
。喜欢这个
$url = 'http://localhost/joe';
$final = parse_url($url, PHP_URL_PATH);
$result = str_replace('/','',$final);
echo $result;
stripslashes()
适用于反斜杠,而不是正斜杠
答案 3 :(得分:0)
只需拨打substr
电话:
$url = 'http://localhost/joe';
echo substr(parse_url($url, PHP_URL_PATH), 1); // joe
答案 4 :(得分:0)
您可以了解路线中的占位符。试试this article
路线参数
路径参数可用于将占位符插入路径定义中。这将有效地创建一个模式,在该模式中可以收集URI段并将其传递给应用程序的逻辑处理程序。
这可能听起来有些令人困惑,但当你看到它在行动中时,一切都将落实到位。我们走了......
<?php
// app/routes.php
// routes for the books section
Route::get('/books', function()
{
return 'Books index.';
});
Route::get('/books/{genre}', function($genre)
{
return "Books in the {$genre} category.";
});
答案 5 :(得分:0)
还有basename()
echo basename('http://localhost/joe'); //joe
答案 6 :(得分:0)
最好使用此规则或mod proxy
重写REQUEST_URI
:
RewriteCond %{REQUEST_URI}
然后,您可以使用trim($_SERVER['REQUEST_URI'],'/')
轻松获取参数并删除其斜线。