2

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

www.shareit.me/matt 

另外,我怎么可能检查那里是否有一个值?

4

6 回答 6

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

如果你真的想让人们知道 matt 喜欢奶酪,你应该使用parse_url()代替:

parse_url('www.shareit.me/matt/loves/cheese', PHP_URL_PATH); // /matt/loves/cheese
于 2013-03-04T17:46:38.833 回答
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
于 2013-03-04T17:45:34.150 回答
2

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

echo explode('/', parse_url('http://www.shareit.me/matt')['path'])[1];
于 2013-03-04T17:46:17.613 回答
1

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

/matt 

但是您需要过滤掉您实际需要的信息。为此,您可以使用preg_match或替代方式。有关$_SERVER变量的更多信息:请参阅此页面

如果要获取包含 url 的字符串的信息,可以使用

爆炸(“/”,$ url);

于 2013-03-04T17:47:09.140 回答
1

代码:

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

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

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

示范:

顺便从字符串中获取一部分

于 2013-03-04T17:52:18.120 回答
0

你可以使用正则表达式preg_match

preg_match("/.\/(.*)$/",$url,$matches);

比检查匹配项是否包含您想要的内容

于 2013-03-04T17:43:45.330 回答