使用PHP从URL中提取信息

时间:2013-03-04 17:41:49

标签: php url url-parsing

我想用PHP从网址中提取信息。如何从网址获取值“matt”:

www.shareit.me/matt 

另外,我怎么可能检查一下是否有值开始?

6 个答案:

答案 0 :(得分:4)

这里不需要过于复杂的事情:

$url  = 'www.shareit.me/matt';
$segs = explode('/', $url);
echo $segs[1]; // matt

检查它是否存在就像if ( !empty($segs[1]) ) {}

一样简单

假设您想要值matt而不仅仅是“路径”,这将适用于所有这些:

www.shareit.me/matt // matt
www.shareit.me/matt/photos
www.shareit.me/matt/photos/vacation/nebraska/cows/ // matt
www.shareit.me/matt/photos?vacation=mexico&gallery=donkeyshow // matt
www.shareit.me/matt/loves/cheese // matt

如果你真的希望人们知道马特喜欢奶酪,你应该使用parse_url()代替:

parse_url('www.shareit.me/matt/loves/cheese', PHP_URL_PATH); // /matt/loves/cheese

答案 1 :(得分:3)

瞧,RTM: http://php.net/manual/en/function.parse-url.php

<?php

$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>

以上示例将输出:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path

答案 2 :(得分:2)

您可以使用parse_url函数,这将返回一个包含有关URL的所有信息的数组。这样的事情可能就是你想要的:

echo explode('/', parse_url('http://www.shareit.me/matt')['path'])[1];

答案 3 :(得分:1)

如果要获取用于浏览脚本的URL,请使用$_SERVER['REQUEST_URI']变量。 在你的情况下,它将返回:

/matt 

但您需要过滤掉您实际需要的信息。 为此,您可以使用preg_match或其他方式。 有关$_SERVER变量的更多信息:see this page

如果您想获取包含网址的字符串的信息,可以使用

  

爆炸(“/”,$ url);

答案 4 :(得分:1)

代码:

$url = "http://www.shareit.me/matt";

$parts = Explode('/', $url);

$id = $parts[count($parts) - 1];

演示:

顺便提一下Getting a part from a string

答案 5 :(得分:0)

您可以将{regex与preg_match

一起使用
preg_match("/.\/(.*)$/",$url,$matches);

如果它包含您想要的内容,则检查匹配