खोज…
एक URL पार्स करना
URL को उसके अलग-अलग घटकों में अलग करने के लिए, parse_url()
उपयोग करें:
$url = 'http://www.example.com/page?foo=1&bar=baz#anchor';
$parts = parse_url($url);
उपरोक्त निष्पादित करने के बाद, $parts
की सामग्री होगी:
Array
(
[scheme] => http
[host] => www.example.com
[path] => /page
[query] => foo=1&bar=baz
[fragment] => anchor
)
आप चुनिंदा रूप से url के सिर्फ एक घटक को भी वापस कर सकते हैं। सिर्फ क्वेरिस्ट्रिंग वापस करने के लिए:
$url = 'http://www.example.com/page?foo=1&bar=baz#anchor';
$queryString = parse_url($url, PHP_URL_QUERY);
निम्न में से कोई भी स्थिरांक स्वीकार किए जाते हैं: PHP_URL_SCHEME
, PHP_URL_HOST
, PHP_URL_PORT
, PHP_URL_USER
, PHP_URL_PASS
, PHP_URL_PATH
, PHP_URL_QUERY
और PHP_URL_FRAGMENT
।
कुंजी मान जोड़े में क्वेरी स्ट्रिंग को आगे पार्स करने के लिए parse_str()
उपयोग करें:
$params = [];
parse_str($queryString, $params);
उपरोक्त निष्पादन के बाद, $params
सरणी निम्नलिखित के साथ आबाद होगी:
Array
(
[foo] => 1
[bar] => baz
)
दूसरे URL पर रीडायरेक्ट करना
ब्राउज़र को किसी भिन्न URL पर पुनर्निर्देशित करने के लिए आप header()
फ़ंक्शन का उपयोग कर सकते हैं:
$url = 'https://example.org/foo/bar';
if (!headers_sent()) { // check headers - you can not send headers if they already sent
header('Location: ' . $url);
exit; // protects from code being executed after redirect request
} else {
throw new Exception('Cannot redirect, headers already sent');
}
आप किसी रिश्तेदार URL पर पुनर्निर्देशित कर सकते हैं (यह आधिकारिक HTTP विनिर्देश का हिस्सा नहीं है, लेकिन यह सभी ब्राउज़रों में काम करता है):
$url = 'foo/bar';
if (!headers_sent()) {
header('Location: ' . $url);
exit;
} else {
throw new Exception('Cannot redirect, headers already sent');
}
यदि हेडर भेजे गए हैं, तो आप वैकल्पिक रूप से meta refresh
HTML टैग भेज सकते हैं।
चेतावनी: मेटा रीफ़्रेश टैग HTML पर निर्भर करता है जिसे क्लाइंट द्वारा ठीक से संसाधित किया जा रहा है, और कुछ ऐसा नहीं करेंगे। सामान्य तौर पर, यह केवल वेब ब्राउज़र में काम करता है। इसके अलावा, विचार करें कि यदि हेडर भेजे गए हैं, तो आपके पास एक बग हो सकता है और इसके लिए अपवाद को ट्रिगर करना चाहिए।
आप उपयोगकर्ताओं के लिए क्लिक करने के लिए एक लिंक भी प्रिंट कर सकते हैं, ऐसे ग्राहकों के लिए जो मेटा ताज़ा टैग को अनदेखा करते हैं:
$url = 'https://example.org/foo/bar';
if (!headers_sent()) {
header('Location: ' . $url);
} else {
$saveUrl = htmlspecialchars($url); // protects from browser seeing url as HTML
// tells browser to redirect page to $saveUrl after 0 seconds
print '<meta http-equiv="refresh" content="0; url=' . $saveUrl . '">';
// shows link for user
print '<p>Please continue to <a href="' . $saveUrl . '">' . $saveUrl . '</a></p>';
}
exit;
किसी सरणी से URL-एन्कोडेड क्वेरी स्ट्रिंग बनाएँ
http_build_query()
एक सरणी या ऑब्जेक्ट से एक क्वेरी स्ट्रिंग बनाएगा। इन स्ट्रिंग को GET अनुरोध बनाने के लिए URL में जोड़ा जा सकता है, या उदाहरण के लिए, POUR के साथ POST अनुरोध में उपयोग किया जा सकता है।
$parameters = array(
'parameter1' => 'foo',
'parameter2' => 'bar',
);
$queryString = http_build_query($parameters);
$queryString
के निम्नलिखित मूल्य होंगे:
parameter1=foo¶meter2=bar
http_build_query()
बहु-आयामी सरणियों के साथ भी काम करेगा:
$parameters = array(
"parameter3" => array(
"sub1" => "foo",
"sub2" => "bar",
),
"parameter4" => "baz",
);
$queryString = http_build_query($parameters);
$queryString
का यह मान होगा:
parameter3%5Bsub1%5D=foo¶meter3%5Bsub2%5D=bar¶meter4=baz
जो URL- एन्कोडेड संस्करण है
parameter3[sub1]=foo¶meter3[sub2]=bar¶meter4=baz