PHP में जावास्क्रिप्ट के एनकोडराइकम्पोनेंट के बराबर क्या है?


जवाबों:


141

कोशिश करो rawurlencode। या अधिक सटीक होने के लिए:

function encodeURIComponent($str) {
    $revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
    return strtr(rawurlencode($str), $revert);
}

यह फ़ंक्शन ठीक उसी तरहencodeURIComponent काम करता है जिसे परिभाषित किया गया है :

encodeURIComponent निम्नलिखित को छोड़कर सभी वर्णों से बच जाता है: वर्णमाला, दशमलव अंक, - _ . ! ~ * ' ( )


धन्यवाद! मुझे लगा कि मैं इसे बिना किसी फंक्शन के कर सकता हूं, लेकिन ठीक है।
गैल

1
@ गल: यदि आपको एक समान आउटपुट की आवश्यकता है, तो आपको केवल उस फ़ंक्शन की आवश्यकता होगी।
Gumbo

@Gumbo Google छवि खोज के लिए फ़ायरफ़ॉक्स एक्सटेंशन में मैंने नोटिस किया कि वे एक छवि को जावास्क्रिप्ट एनकोडाउरीकोम्पोनेंट से गुजारें। Addons.mozilla.org/nl/firefox/files/browse/126380/file/chrome/… , लाइन 137 देखें । मैं PHP में कैसे कर सकता हूं?
user410932

धन्यवाद गुम्बो। यह मददगार था!
मार्विन थोबजाने

मुझे विश्वास नहीं होता कि रॉर्लुरेन्कोड सांकेतिक शब्दों में बदलना (जो यूआरआई घटकों के लिए किए जाने की आवश्यकता है)।
क्रिस राए

6

क्या आपने कोशिश की urlencode?


1
हाँ। समस्या यह है कि यह पूरी तरह से एन्कोडायरी की तरह नहीं है, यह हर चरित्र को रूपांतरित करता है, यहां तक ​​कि ^ मुझे कुछ ऐसा चाहिए था जो मेरे बिना हस्तक्षेप करने के लिए ठीक उसी तरह कार्य कर सकता है ^ ^।
गैल

2

फ़ंक्शन एनकोडरिकम्पोनेंट ($ स्ट्रिंग) {
   $ परिणाम = "";
   के लिए ($ i = 0; $ i <strlen ($ string); $ i ++) {
      $ परिणाम। = encodeURIComponentbycharacter (urlencode ($ स्ट्रिंग [$ i]));
   }
   $ परिणाम लौटाओ;
}

फंक्शन एन्कोडर्किओम्पोनेंटबाइबैकर ($ char) { अगर ($ char == "+") {वापसी "% 20"; } अगर ($ char == "% 21") {वापसी "!"; } अगर ($ char == "% 27") {वापसी '"' ;; अगर ($ char == "% 28") {वापसी "(";} अगर ($ char == "% 29") {वापसी ")"; } अगर ($ char == "% 2A") {वापसी "*"; } अगर ($ char == "% 7E") {वापसी "~"; } अगर ($ char == "% 80") {रिटर्न "% E2% 82% AC"; } अगर ($ char == "% 81") {रिटर्न "% C2% 81"; } अगर ($ char == "% 82") {रिटर्न "% E2% 80% 9A"; } अगर ($ char == "% 83") {रिटर्न "% C6% 92"; } अगर ($ char == "% 84") {रिटर्न "% E2% 80% 9E"; } अगर ($ char == "% 85") {रिटर्न "% E2% 80% A6"; } अगर ($ char == "% 86") {रिटर्न "% E2% 80% A0"; } अगर ($ char == "% 87") {रिटर्न "% E2% 80% A1"; } अगर ($ char == "% 88") {रिटर्न "% CB% 86"; } अगर ($ char == "% 89") {रिटर्न "% E2% 80% B0"; } अगर ($ char == "% 8A") {रिटर्न "% C5% A0"; } अगर ($ char == "% 8B") {रिटर्न "% E2% 80% B9"; } अगर ($ char == "% 8C") {रिटर्न "% C5% 92"; } अगर ($ char == "% 8D") {रिटर्न "% C2% 8D"; } अगर ($ char == "% 8E") {रिटर्न "% C5% BD"; } अगर ($ char == "% 8F") {रिटर्न "% C2% 8F"; } अगर ($ char == "% 90") {रिटर्न "% C2% 90"; } अगर ($ char == "% 91") {रिटर्न "% E2% 80% 98"; } अगर ($ char == "% 92") {रिटर्न "% E2% 80% 99"; } अगर ($ char == "% 93") {रिटर्न "% E2% 80% 9C"; } अगर ($ char == "% 94") {रिटर्न "% E2% 80% 9D"; } अगर ($ char == "% 95") {रिटर्न "% E2% 80% A2"; } अगर ($ char == "% 96") {रिटर्न "% E2% 80% 93"; } अगर ($ char == "% 97") {रिटर्न "% E2% 80% 94"; } अगर ($ char == "% 98") {रिटर्न "% CB% 9C"; } अगर ($ char == "% 99") {रिटर्न "% E2% 84% A2"; } अगर ($ char == "% 9A") {रिटर्न "% C5% A1"; } अगर ($ char == "% 9B") {रिटर्न "% E2% 80% BA"; } अगर ($ char == "% 9C") {रिटर्न "% C5% 93"; } अगर ($ char == "% 9D") {रिटर्न "% C2% 9D"; } अगर ($ char == "% 9E") {रिटर्न "% C5% BE"; } अगर ($ char == "% 9F") {रिटर्न "% C5% B8"; } अगर ($ char == "% A0") {रिटर्न "% C2% A0"; } अगर ($ char == "% A1") {रिटर्न "% C2% A1"; } अगर ($ char == "% A2") {रिटर्न "% C2% A2"; } अगर ($ char == "% A3") {रिटर्न "% C2% A3"; } अगर ($ char == "% A4") {रिटर्न "% C2% A4"; } अगर ($ char == "% A5") {रिटर्न "% C2% A5"; } अगर ($ char == "% A6") {रिटर्न "% C2% A6"; } अगर ($ char == "% A7") {रिटर्न "% C2% A7"; } अगर ($ char == "% A8") {रिटर्न "% C2% A8"; } अगर ($ char == "% A9") {रिटर्न "% C2% A9"; } अगर ($ char == "% AA") {वापसी "% C2% AA"; } अगर ($ char == "% AB") {रिटर्न "% C2% AB"; } अगर ($ char == "% AC") {रिटर्न "% C2% AC"; } अगर ($ char == "% AD") {रिटर्न "% C2% AD"; } अगर ($ char == "% AE") {रिटर्न "% C2% AE"; } अगर ($ char == "% AF") {रिटर्न "% C2% AF"; } अगर ($ char == "% B0") {रिटर्न "% C2% B0"; } अगर ($ char == "% B1") {रिटर्न "% C2% B1"; } अगर ($ char == "% B2") {रिटर्न "% C2% B2"; } अगर ($ char == "% B3") {रिटर्न "% C2% B3"; } अगर ($ char == "% B4") {रिटर्न "% C2% B4"; } अगर ($ char == "% B5") {रिटर्न "% C2% B5"; } अगर ($ char == "% B6") {रिटर्न "% C2% B6"; } अगर ($ char == "% B7") {रिटर्न "% C2% B7"; } अगर ($ char == "% B8") {रिटर्न "% C2% B8"; } अगर ($ char == "% B9") {रिटर्न "% C2% B9"; } अगर ($ char == "% BA") {रिटर्न "% C2% BA"; } अगर ($ char == "% BB") {रिटर्न "% C2% BB"; } अगर ($ char == "% BC") {वापसी "% C2% BC"; } अगर ($ char == "% BD") {रिटर्न "% C2% BD"; } अगर ($ char == "% BE") {रिटर्न "% C2% BE"; } अगर ($ char == "% BF") {रिटर्न "% C2% BF"; } अगर ($ char == "% C0") {रिटर्न "% C3% 80"; } अगर ($ char == "% C1") {रिटर्न "% C3% 81"; } अगर ($ char == "% C2") {रिटर्न "% C3% 82"; } अगर ($ char == "% C3") {रिटर्न "% C3% 83"; } अगर ($ char == "% C4") {रिटर्न "% C3% 84"; } अगर ($ char == "% C5") {रिटर्न "% C3% 85"; } अगर ($ char == "% C6") {रिटर्न "% C3% 86"; } अगर ($ char == "% C7") {रिटर्न "% C3% 87"; } अगर ($ char == "% C8") {रिटर्न "% C3% 88"; } अगर ($ char == "% C9") {रिटर्न "% C3% 89"; } अगर ($ char == "% CA") {रिटर्न "% C3% 8A"; } अगर ($ char == "% CB") {रिटर्न "% C3% 8B"; } अगर ($ char == "% CC") {रिटर्न "% C3% 8C"; } अगर ($ char == "% CD") {रिटर्न "% C3% 8D"; } अगर ($ char == "% CE") {रिटर्न "% C3% 8E"; } अगर ($ char == "% CF") {रिटर्न "% C3% 8F"; } अगर ($ char == "% D0") {रिटर्न "% C3% 90"; } अगर ($ char == "% D1") {रिटर्न "% C3% 91"; } अगर ($ char == "% D2") {रिटर्न "% C3% 92"; } अगर ($ char == "% डी 3") {रिटर्न "% C3% 93"; } अगर ($ char == "% D4") {रिटर्न "% C3% 94"; } अगर ($ char == "% D5") {रिटर्न "% C3% 95"; } अगर ($ char == "% D6") {रिटर्न "% C3% 96"; } अगर ($ char == "% D7") {रिटर्न "% C3% 97"; } अगर ($ char == "% D8") {रिटर्न "% C3% 98"; } अगर ($ char == "% D9") {रिटर्न "% C3% 99"; } अगर ($ char == "% DA") {रिटर्न "% C3% 9A"; } अगर ($ char == "% DB") {रिटर्न "% C3% 9B"; } अगर ($ char == "% DC") {रिटर्न "% C3% 9C"; } अगर ($ char == "% DD") {रिटर्न "% C3% 9D"; } अगर ($ char == "% DE") {रिटर्न "% C3% 9E"; } अगर ($ char == "% DF") {वापसी "% C3% 9F"; } अगर ($ char == "% E0") {रिटर्न "% C3% A0"; } अगर ($ char == "% E1") {रिटर्न "% C3% A1"; } अगर ($ char == "% E2") {रिटर्न "% C3% A2"; } अगर ($ char == "% E3") {रिटर्न "% C3% A3"; } अगर ($ char == "% E4") {रिटर्न "% C3% A4"; } अगर ($ char == "% E5") {रिटर्न "% C3% A5"; } अगर ($ char == "% E6") {रिटर्न "% C3% A6"; } अगर ($ char == "% E7") {रिटर्न "% C3% A7"; } अगर ($ char == "% E8") {रिटर्न "% C3% A8"; } अगर ($ char == "% E9") {रिटर्न "% C3% A9"; } अगर ($ char == "% EA") {वापसी "% C3% AA"; } अगर ($ char == "% EB") {रिटर्न "% C3% AB"; } अगर ($ char == "% EC") {रिटर्न "% C3% AC"; } अगर ($ char == "% ED") {रिटर्न "% C3% AD"; } अगर ($ char == "% EE") {रिटर्न "% C3% AE"; } अगर ($ char == "% EF") {रिटर्न "% C3% AF"; } अगर ($ char == "% F0") {रिटर्न "% C3% B0"; } अगर ($ char == "% F1") {रिटर्न "% C3% B1"; } अगर ($ char == "% F2") {रिटर्न "% C3% B2"; } अगर ($ char == "% F3") {रिटर्न "% C3% B3"; } अगर ($ char == "% F4") {रिटर्न "% C3% B4"; } अगर ($ char == "% F5") {रिटर्न "% C3% B5"; } अगर ($ char == "% F6") {रिटर्न "% C3% B6"; } अगर ($ char == "% F7") {रिटर्न "% C3% B7"; } अगर ($ char == "% F8") {रिटर्न "% C3% B8"; } अगर ($ char == "% F9") {रिटर्न "% C3% B9"; } अगर ($ char == "% FA") {वापसी "% C3% BA"; } अगर ($ char == "% FB") {रिटर्न "% C3% BB"; } अगर ($ char == "% FC") {वापसी "% C3% BC"; } अगर ($ char == "% FD") {रिटर्न "% C3% BD"; } अगर ($ char == "% FE") {रिटर्न "% C3% BE"; } अगर ($ char == "% FF") {रिटर्न "% C3% BF"; } $ चार वापसी; }


यह वह जगह है जहां एक स्विच स्टेटमेंट काम में आता है
यादा

2
जवाब का तर्क मेरे लिए तर्कपूर्ण है, किसी भी तरह से IF या SWITCH चेन इस मामले में अच्छा प्रदर्शन नहीं करते हैं। यह एक विशिष्ट मामला है जिसमें एक अनुक्रमित सरणी सबसे अच्छा समाधान है, जहां लुकअप वैल्यू कुंजी है।
इमानुएल डेल ग्रांडे

0

यह कोड कैसा है?
मैंने प्रत्येक स्तर को एनकोड किया।
वास्तव में यह एन्कोडर्इ के समान नहीं है, लेकिन आप होस्ट नाम और "/" को एन्कोड कर सकते हैं

function encodeURI($url) {
    if(__empty($url))return $url; 

    $res = preg_match('/.*:\/\/(.*?)\//',$url,$matches);
    if($res){

        // except host name
        $url_tmp = str_replace($matches[0],"",$url);

        // except query parameter
        $url_tmp_arr = explode("?",$url_tmp);

        // encode each tier
        $url_tear = explode("/", $url_tmp_arr[0]);
        foreach ($url_tear as $key => $tear){
            $url_tear[$key] = rawurlencode($tear);
        }

        $ret_url = $matches[0].implode('/',$url_tear);

        // encode query parameter
        if(count($url_tmp_arr) >= 2){
            $ret_url .= "?".$this->encodeURISub($url_tmp_arr[1]);
        }
        return $ret_url;
    }else{
        return $this->encodeURISub($url);
    }

}

/**
 * /programming/4929584/encodeuri-in-php/6059053
 */
function encodeURISub($url) {
    // http://php.net/manual/en/function.rawurlencode.php
    // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI
    $unescaped = array(
    '%2D'=>'-','%5F'=>'_','%2E'=>'.','%21'=>'!', '%7E'=>'~',
    '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')'
            );
    $reserved = array(
            '%3B'=>';','%2C'=>',','%2F'=>'/','%3F'=>'?','%3A'=>':',
            '%40'=>'@','%26'=>'&','%3D'=>'=','%24'=>'$'
    );
    $score = array(
            '%23'=>'#'
    );
    return strtr(rawurlencode($url), array_merge($reserved,$unescaped,$score));

}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.