5

我是一种将大约 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>";

但我还有很多参数要传递。有人可以告诉我它是如何使用数组或更好的方法完成的吗?

谢谢

4

3 回答 3

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, '', '&amp;');

?>

输出:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor
于 2013-01-03T19:17:44.660 回答
3

PHP 中有一个将数组转换为 URL 查询的函数,它被称为:

用法非常简单:

$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');

上面的示例将输出:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

我推荐刚刚链接的手册页以获取更多信息。

如果您正在寻找面向对象的东西,Net_URL2Pear 包很有用。

它还允许有条件地更改一些参数,这通常对分页非常有用,请参阅我对“在分页期间保留 url 参数”的回答以获取两个示例,一个基于 Array/PHP 标准扩展,另一个用于Net_URL2.

于 2013-01-03T19:17:25.973 回答
0

假设所有$_GET键都与 URL 中的参数名称相同,您可以这样做:

$url = $targetpage . '?page=' . $prev . '&';

foreach ($_GET as $k => $v) {
    $url .= $k . '=' . $v . '&';
}
 $paginate.= "<a href='$url'>Previous</a>";

.. 或者你可以只使用 PHP 的内置函数http_build_query()

于 2013-01-03T19:18:45.337 回答