如何在php

时间:2016-01-27 09:04:33

标签: php string parsing

我正在制作wordpress插件。我想获取我的网站的网址并获取页面名称,例如www.example.com/pagename,在这种情况下,我想要pagename。所以我使用本机PHP函数$_SERVER['REQUEST_URI']来获取我的网站的URL。我将其存储在$url变量中,如下所示。

$url= $_SERVER['REQUEST_URI'];

当我回复url var

时,我得到了这个
/ifar/wellington/

$name= "wellington"; /* I want it like this */ 

如何从此字符串中获取wellington并将其存储在$name中。

3 个答案:

答案 0 :(得分:2)

实际上你应该使用路由器,如https://github.com/auraphp/Aura.Router或任何其他路由器。但简单快捷的答案将是

$parts = explode('/', trim($url, '/'));
$name = $parts[1];

如果你想获得第二个uri片段。

答案 1 :(得分:1)

您可以使用一些方法,我在下面放了两个快速简单的方法:

// Method One
$url      = '/ifar/wellington/';
$url      = trim($url, '/');
$urlParts = explode('/', $url);
$name     = $urlParts[1];

// Method Two
$url  = '/ifar/wellington/';
$url  = trim($url, '/');
$name = substr($url, (strpos($url, '/') + 1));

虽然这取决于您是否可以确定您传入的URL始终以相同的格式返回。如果$_SERVER['REQUEST_URI']返回/ifar/something/wellington/之类的内容,则上述结果将不符合您的预期。

您可能会考虑拉出完整的网址然后使用parse_url()拉出完整路径,然后找出您需要的部分。

虽然上述方法可能就足够了,但我不能肯定地说它们适用于所有用例,因为我不知道你的程序的输入/输出。

答案 2 :(得分:1)

$url= $_SERVER['REQUEST_URI'];
$name = explode("/",$url);
echo $name[1];

在$ name中,您在数组中获得了单独的字符串。如果您的域名将在您的域名后面的网址中排在第一位,您可以通过上面的回复来获取名称。