php
  • url
  • pdo
  • 2013-01-03 125 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()

    相關問題