2013-01-03 13 views
5

मैं एक तरह से की बात कर रहा हूँ एक यूआरएल पृष्ठांकन होने में लगभग 15 पैरामीटर पास करने के: उदाहरण के लिएपास मापदंडों

मेरे पास है:

$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 उपयोगी है।

यह भी सशर्त कुछ मानकों को बदलने के लिए, जो आम तौर पर पृष्ठांकन लिए बहुत उपयोगी है, दो उदाहरण, एक सरणी/पीएचपी मानक विस्तार आधारित है, और Net_URL2 के लिए एक और एक के लिए my answer to "keeping url parameters during pagination" देखने की अनुमति देता है।

0

सभी $_GET कुंजी मान लिया जाये कि में पैरामीटर नाम के रूप में एक ही हैं यूआरएल, आप यह कर सकते हैं:

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

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

.. या फिर आप इस्तेमाल कर सकते हैं PHP के inbuilt function http_build_query()