जवाबों:
आप parse_strफ़ंक्शन चाहते हैं, और आपको डेटा को अलग-अलग चर में रखने के लिए दूसरा पैरामीटर सेट करने की आवश्यकता है।
$get_string = "pg_id=2&parent_id=2&document&video";
parse_str($get_string, $get_array);
print_r($get_array);
?key=lorem&key=ipsumआपने केवल प्रदान किया है key=ipsumयदि वह URL पर क्वेरी स्ट्रिंग थे। और मुझे लगता है कि यह कुंजी को फिर से उपयोग करने के लिए अमान्य माना जाता है और लगातार परिणामों की अपेक्षा करता है या कि कुंजी के सभी उदाहरणों को बनाए रखा जाता है। कम से कम PHP के लिए भेजे गए एक क्वेरी स्ट्रिंग के लिए मान्य दृष्टिकोण, होगा ?key[]=lorem&key[]=ipsum, इसलिए आपका होमग्रोन दृष्टिकोण किसी भी घटना के लिए देख सकता है &{x}=जहां x एक से अधिक बार होता है और x[](और उपचार के रूप में? और साथ ही)
?key[]=lorem&key[]=ipsumकुछ हफ्तों पहले इसे इस तरह करने का फैसला किया । लेकिन लिंक साझा करने के लिए धन्यवाद!
कभी-कभी parse_str()अकेला नोट सटीक होता है, यह उदाहरण के लिए प्रदर्शित हो सकता है:
$url = "somepage?id=123&lang=gr&size=300";
parse_str () वापस आएगा:
Array (
[somepage?id] => 123
[lang] => gr
[size] => 300
)
बेहतर होगा कि इसके parse_str()साथ गठबंधन parse_url()करें:
$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );
$_SERVER['QUERY_STRING']
का उपयोग कर parse_str()।
$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);
Http://us1.php.net/parse_str का उपयोग करें
ध्यान दें, यह उपयोग है:
parse_str($str, &$array);
नहीं
$array = parse_str($str);
यदि आपको एन्कोडेड एम्परसेंड के कारण क्वेरी स्ट्रिंग को किसी सरणी में परिवर्तित करने में समस्या हो रही है
&
तो उपयोग करना सुनिश्चित करें html_entity_decode
उदाहरण:
// Input string //
$input = 'pg_id=2&parent_id=2&document&video';
// Parse //
parse_str(html_entity_decode($input), $out);
// Output of $out //
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
कई संभावित तरीके हैं, लेकिन आपके लिए, पहले से ही बिलिन parse_strफ़ंक्शन है
$array = array();
parse_str($string, $array);
var_dump($array);
यह mysql & mssql में क्वेरी को विभाजित करने के लिए PHP कोड है
enter code here
function splitquery($strquery)
{
$arrquery=explode('select',$strquery);
$stry='';$strx='';
for($i=0;$i<count($arrquery);$i++)
{
if($i==1)
{
echo 'select '.trim($arrquery[$i]);
}
elseif($i>1)
{
$strx=trim($arrquery[($i-1)]);
if(trim(substr($strx,-1))!='(')
{
$stry=$stry.'
select '.trim($arrquery[$i]);
}
else
{
$stry=$stry.trim('select '.trim($arrquery[$i]));
}
$strx='';
}
}
return $stry;
}
उदाहरण:
xx से xx चुनें
xx से xx का चयन करें
xx से xx चुनें (xx का चयन करें) जहाँ y = 'cc'
xx से बाईं ओर xx का चयन करें (xx का चयन करें) जहां (xxx से शीर्ष 1 xxx का चयन करें) xxx desc द्वारा ओडर करें
धन्यवाद, इंडोनेशिया Sentrapedagang.com से
इस विशिष्ट प्रश्न के लिए चुना हुआ उत्तर सही है, लेकिन यदि कोई अतिरिक्त पैरामीटर है - जैसे कि एक अतिरिक्त "e" - तो URL फंक्शन चुपचाप किसी त्रुटि या अपवाद के बिना विफल हो जाएगा:
a=2&b=2&c=5&d=4&e=1&e=2&e=3
इसलिए मैं अपने खुद के पार्सर का उपयोग करना पसंद करता हूं:
//$_SERVER['QUERY_STRING'] = `a=2&b=2&c=5&d=4&e=100&e=200&e=300`
$url_qry_str = explode('&', $_SERVER['QUERY_STRING']);
//arrays that will hold the values from the url
$a_arr = $b_arr = $c_arr = $d_arr = $e_arr = array();
foreach( $url_qry_str as $param )
{
$var = explode('=', $param, 2);
if($var[0]=="a") $a_arr[]=$var[1];
if($var[0]=="b") $b_arr[]=$var[1];
if($var[0]=="c") $c_arr[]=$var[1];
if($var[0]=="d") $d_arr[]=$var[1];
if($var[0]=="e") $e_arr[]=$var[1];
}
var_dump($e_arr);
// will return :
//array(3) { [0]=> string(1) "100" [1]=> string(1) "200" [2]=> string(1) "300" }
अब आपके पास प्रत्येक पैरामीटर की सभी सरणीएँ हैं, यदि आप चाहें, तो आप उन्हें हमेशा एक सरणी में मर्ज कर सकते हैं।
उम्मीद है की वो मदद करदे!
?key=lorem&key=ipsumमें परिणाम होगाarray(["key"]=>"ipsum"), वहाँ s.th पाने के लिए एक समारोह है। इस तरहarray(["key"]=>array("lorem", "ipsum"))या मुझे यह फ़ंक्शन अपने दम पर बनाना होगा?