从爆炸的网址获取ID

时间:2016-02-01 14:20:09

标签: php

目前我有以下代码。

$file_id = 'https://skyvault.co/show/file?filename=6N2viQpwLKBIA6';
$parts = parse_url($file_id);
$path_parts = explode('/', $parts[path]);
$secret = $path_parts[3];
print $secret;

上面你可以看到我试图通过/进行爆炸并且它没有返回我正在寻找的输出而只是返回file而我需要它返回6N2viQpwLKBIA6那我怎么能得到那个ID?

3 个答案:

答案 0 :(得分:4)

parse_url 有效,但您需要指定query索引。像这样重做:

$file_id = 'https://skyvault.co/show/file?filename=6N2viQpwLKBIA6';
$parts = parse_url($file_id);
$path_parts = explode('=', $parts['query']);
$secret = $path_parts[1];
print $secret;

答案 1 :(得分:1)

如果所有商品的网址始终相同,您是否可以通过这种方式快速完成?

$URLComp = explode("show/file?filename=", $file_id);
$secret = $URLComp[1];
print $secret;

主要原因是,可能会有www的情况,有或没有https

答案 2 :(得分:0)

如果您出于任何原因需要使用parse_url,则可以使用query组件代替path作为suggested by @CodieGodie

但是,如果您使用此字符串作为字符串进行处理,则可以忽略parse_url并使用它就像字符串一样。

$file_id = 'https://skyvault.co/show/file?filename=6N2viQpwLKBIA6';
$parts = explode('/', $file_id);
$lastPart = end($parts);
$varParts = explode('=', $lastPart);//also explode('?', $lastPart) if you want "filename="
$secret = end($varParts);
print $secret;

注意:如果您的字符串始终具有相同的格式,则此代码将起作用,即:' https://example.com/path/path/path?varName=varValue'只有1个var在URL的末尾。