php

2012-08-23 27 views
8

में हाइफ़न (-) और डॉट (।) सहित यूआरएल को एन्कोड करें, मुझे एपीआई में से किसी एक में प्रोसेसिंग के लिए एन्कोडेड यूआरएल की आवश्यकता है। लेकिन यह पूर्ण एन्कोडेड यूआरएलphp

की आवश्यकता है उदाहरण के लिए:

http://test.site-raj.co/999999?lpp=1&px2=IjN 

से यूआरएल एन्कोडेड यूआरएल के लिए की तरह नीचे

http%3a%2f%test%site%2draj%2eco%2f999999%3flpp%3d1%26px2%3dIjN 

मैं हर दूसरे प्रतीक भी डॉट एन्कोड करने की जरूरत है (।) और हाइफ़न (-) ऊपर की तरह। कृपया मुझे php/code में ऐसा करने के लिए किसी भी फ़ंक्शन को बताएं।

धन्यवाद।

+0

आपका उदाहरण यह –

+1

तो क्या में कोई हाइफन है? @MikeB – 11684

+3

@ 11684 हमें यह जानने की जरूरत है कि वह हाइफ़न का अनुवाद करने की अपेक्षा करता है। इसी प्रकार डॉट्स के साथ .. उन्होंने उन्हें अपने अपेक्षित आउटपुट में प्रतिशत संकेतों के साथ बदल दिया। –

उत्तर

14

इसे आजमाएं। एक समारोह हो सकता है अगर आप इसे एक बार से अधिक उपयोग कर रहे हैं ...

$str = 'http://test.site.co/999999?lpp=1&p---x2=IjN'; 
$str = urlencode($str); 
$str = str_replace('.', '%2E', $str); 
$str = str_replace('-', '%2D', $str); 
echo $str; 
+0

या यह ठीक हो सकता है लेकिन यदि कोई अन्य विशेष पात्र मौजूद है तो इसका अर्थ यह भी है कि इसे कैसे किया जाए? –

8

अंदर यह सभी वर्णों कि सादे अक्षरों या संख्याओं नहीं हैं सांकेतिक शब्दों में बदलना होगा। तुम अब भी मानक urldecode या rawurldecode के साथ इस डिकोड कर सकते हैं:

function urlencodeall($x) { 
    $out = ''; 
    for ($i = 0; isset($x[$i]); $i++) { 
     $c = $x[$i]; 
     if (!ctype_alnum($c)) $c = '%' . sprintf('%02X', ord($c)); 
     $out .= $c; 
    } 
    return $out; 
} 
-3

आप rawurlencode

उदाहरण के लिए क्यों इस्तेमाल नहीं करते rawurlencode("http://test.site-raj.co/999999?lpp=1&px2=IjN")

+3

http://www.php.net/rawurlencode का कहना है कि एक स्ट्रिंग देता है जिसमें '-_। ~' को छोड़कर सभी गैर-अल्फान्यूमेरिक वर्णों को प्रतिशत (%) चिह्न के साथ दो हेक्टेयर अंकों के साथ प्रतिस्थापित किया गया है। यही वह नहीं है जिसे ओपी ने पूछा था। –