我想使用 PHP 从 url 中提取信息。如何从 url 中获取值“matt”:
www.shareit.me/matt
另外,我怎么可能检查那里是否有一个值?
我想使用 PHP 从 url 中提取信息。如何从 url 中获取值“matt”:
www.shareit.me/matt
另外,我怎么可能检查那里是否有一个值?
无需在这里过度复杂化:
$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
瞧,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
您可以使用parse_url函数,这将返回一个包含有关 URL 的所有信息的数组。像这样的东西可能是你想要的:
echo explode('/', parse_url('http://www.shareit.me/matt')['path'])[1];
如果要获取用于浏览脚本的 url,请使用该$_SERVER['REQUEST_URI']
变量。在您的情况下,它将返回:
/matt
但是您需要过滤掉您实际需要的信息。为此,您可以使用preg_match
或替代方式。有关$_SERVER
变量的更多信息:请参阅此页面
如果要获取包含 url 的字符串的信息,可以使用
爆炸(“/”,$ url);
$url = "http://www.shareit.me/matt";
$parts = Explode('/', $url);
$id = $parts[count($parts) - 1];
顺便从字符串中获取一部分。
你可以使用正则表达式preg_match
preg_match("/.\/(.*)$/",$url,$matches);
比检查匹配项是否包含您想要的内容