从最终字符串和GET中删除斜杠

时间:2014-07-04 18:34:08

标签: php .htaccess url

早些时候我使用的是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,但似乎没有用。那么任何想法?

7 个答案:

答案 0 :(得分:1)

您还可以使用explodearray_pop

$url = 'http://localhost/joe';
echo array_pop(explode("/", $url))

答案 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'],'/')轻松获取参数并删除其斜线。