PHP:从没有文件ID的url获取所有参数

时间:2015-12-09 14:39:54

标签: php

我想将链接的所有使用参数提取为文本字符串。例如:

$link2 = http://example.com/index.html?song=abcdefg;

使用上述链接$param时,应该给出所有参数'?song = abcdefg'。不幸的是,我不知道id index.html,也不知道参数及其各自的数据值。

尽管我被告知有函数$_GET,它创建了一个数组,但我需要一个字符串。

5 个答案:

答案 0 :(得分:1)

您可以使用parse_url

$link2 = 'http://example.com/index.html?song=abcdefg';
$param = '?' . parse_url($link2, PHP_URL_QUERY);

echo $param;
// ?song=abcdefg

答案 1 :(得分:0)

解析url存在许多librairies,你可以使用这个例子:

https://github.com/thephpleague/uri

use League\Uri\Schemes\Http as HttpUri;

$link2 = 'http://example.com/index.html?song=abcdefg';
$uri = HttpUri::createFromString($link2);
// then you can access the query
$query = $uri->query;

你也可以尝试这个: https://github.com/jwage/purl

答案 2 :(得分:0)

一种奇怪的方法是

$link2 = 'http://example.com/index.html?song=abcdefg';
$param = strstr($link2, "?");
echo $param // ?song=abcdefg

strstr($link2, "?")会在?的第一个位置之后获得所有内容;包括前导?

答案 3 :(得分:0)

你可以遍历get数组并将其解析成一个字符串:

$str = "?"
foreach ($_GET as $key => $value) { 
    $temp = $key . "=". $value . "&";
    $str .= $temp
}
rtrim($str, "&")//remove leading '&'

答案 4 :(得分:0)

您可以使用http_build_query()方法

if ( isset ($_GET))
{
    $params =  http_build_query($_GET);     
}

// echo $params should return "song=abcdefg";