build_query()
将数组转换为要在URL中使用的字符串。可以传递数组或对象:
$test1 = array (
\'foo\' => \'bar\',
\'hello\' => \'world\'
);
$query1 = build_query( $test1 );
print "<pre>$query1</pre>"; // foo=bar&hello=world
$test2 = array (
\'foo\' => \'bar\',
\'hello\' => \'world\',
\'one\' => array( 1, 2 ),
\'two\' => array(
\'a\' => 3,
\'b\' => 4
)
);
$query2 = build_query( $test2 );
print "<pre>$query2</pre>"; // foo=bar&hello=world&deep%5Ba%5D=1&deep%5Bb%5D=2
$test3 = new stdClass;
$test3->foo = \'bar\';
$test3->arr = array( 5, 6, \'red\' );
$query3 = build_query( $test3 );
print "<pre>$query3</pre>"; // foo=bar&arr%5B0%5D=5&arr%5B1%5D=6&arr%5B2%5D=red
要获取当前URL,可以使用以下内容:
$url = set_url_scheme(
\'http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\']
);
现在您可以使用
build_query()
将自定义数组值附加到URL,但可以使用
add_query_arg()
:
$custom = array( \'name\' => \'me\' );
$url = add_query_arg( $custom, $url );
add_query_arg()
将在URL中查找现有参数,并确保它们不会丢失或干扰
$custom
价值观如果两者中都有重复的条目,
$custom
将覆盖现有参数。
build_query()
用于add_query_arg()
也可以,但没有明显的原因,您无法将对象传递给add_query_arg()
就像你可以在build_query()
. 对象以静默方式放置。