我想将链接的所有使用参数提取为文本字符串。例如:
$link2 = http://example.com/index.html?song=abcdefg;
使用上述链接$param
时,应该给出所有参数'?song = abcdefg'。不幸的是,我不知道id index.html
,也不知道参数及其各自的数据值。
尽管我被告知有函数$_GET
,它创建了一个数组,但我需要一个字符串。
答案 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";