我可以将15个参数传递给url分页:
例如我有:
$input = $_GET['input'];
$categories = $_GET['category'];
$state = $_GET['state'];
$zipcode = $_GET['zipcode'];
我可以这样做并且工作正常:
$paginate.= "<a href='$targetpage?page=$prev&input=".$_GET['input']."&
category=".$_GET['category']."&state=".$_GET['state']."&
zipcode=".$GET['zipcode']."'>Previous</a>";
但是我要传递更多参数。有人能告诉我如何使用数组或其他更好的方法吗?
谢谢
答案 0 :(得分:5)
哟可以使用此功能:
http_build_query
php.net示例:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
?>
输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
答案 1 :(得分:2)
PHP中提供了一个将数组转换为URL查询的函数,它被称为:
用法很简单:
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
以上示例将输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
我建议the manual page just linked了解更多信息。
如果您正在寻找面向对象的东西,Net_URL2
Pear Package很有用。
它还允许有条件地更改某些参数,这对于分页通常非常有用,请参阅my answer to "keeping url parameters during pagination"两个示例,一个基于Array / PHP标准扩展,另一个用于Net_URL2
。
答案 2 :(得分:0)
假设所有$_GET
键与URL中的参数名称相同,您可以这样做:
$url = $targetpage . '?page=' . $prev . '&';
foreach ($_GET as $k => $v) {
$url .= $k . '=' . $v . '&';
}
$paginate.= "<a href='$url'>Previous</a>";
..或者您可以使用PHP的inbuilt function http_build_query()