php
  • url
  • pdo
  • 2013-01-03 93 views 5 likes 
    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>"; 
    

    但我有更多的参数通过。有人能告诉我它是如何使用数组或其他更好的方式来完成的?

    谢谢

    +1

    你看起来是处理GET请求时最简单和最标准的方法。为什么混淆它? – David

    回答

    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 
    
    2

    ,轮流数组为URL查询功能在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 
    

    我建议the manual page just linked以获取更多信息。

    如果您正在寻找面向对象的东西,Net_URL2 Pear Package是有用的。

    它还允许有条件地更改一些参数,这通常对于分页非常有用,有两个示例参见my answer to "keeping url parameters during pagination",一个基于阵列/ PHP标准扩展,另一个参考Net_URL2

    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()

    相关问题