Skip to content

URL 处理

解析 URL

php
<?php

$url = 'http://127.0.0.1:8080?a=1&b=2';
$url_arr = parse_url($url);
var_dump($url_arr);

结果

array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(9) "127.0.0.1"
  ["port"]=>
  int(8080)
  ["query"]=>
  string(7) "a=1&b=2"
}

参数转数组

php
<?php

$url = 'http://127.0.0.1:8080?a=1&b=2';
$url_query = parse_url($url, PHP_URL_QUERY);
var_dump($url_query);

$url_query_arr = [];
parse_str($url_query, $url_query_arr);
var_dump($url_query_arr);

结果

string(7) "a=1&b=2"

array(2) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  string(1) "2"
}

数组转参数

php
<?php

$url = 'http://127.0.0.1:8080?a=1&b=2';
$url_query = parse_url($url, PHP_URL_QUERY);
var_dump($url_query);

$url_query_arr = [];
parse_str($url_query, $url_query_arr);
var_dump($url_query_arr);

结果

string(7) "a=1&b=2"

array(2) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  string(1) "2"
}

追加参数

php
<?php

$url = 'http://127.0.0.1:8080?a=1&b=2';
$url_query = parse_url($url, PHP_URL_QUERY);
var_dump($url_query);

$url_query_arr = [];
parse_str($url_query, $url_query_arr);
var_dump($url_query_arr);

$add_query_arr = [
	'c' => 'ccc',
	'd' => 'ddd',
	"a" => 'aaa'
];
$url_query_arr = array_merge($url_query_arr, $add_query_arr);
var_dump($url_query_arr);

$url_query_str = http_build_query($url_query_arr);
var_dump($url_query_str);

$new_url = explode('?', $url)[0] . '?' . $url_query_str;
var_dump($new_url);

结果

string(7) "a=1&b=2"

array(2) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  string(1) "2"
}

array(4) {
  ["a"]=>
  string(3) "aaa"
  ["b"]=>
  string(1) "2"
  ["c"]=>
  string(3) "ccc"
  ["d"]=>
  string(3) "ddd"
}

string(21) "a=aaa&b=2&c=ccc&d=ddd"

string(43) "http://127.0.0.1:8080?a=aaa&b=2&c=ccc&d=ddd"