পিএইচপি-তে জাভাস্ক্রিপ্টের এনকোর্ডিউর সংস্থার সমতুল্য কী?


উত্তর:


143

ব্যবহার করে দেখুন rawurlencode। বা আরও সুনির্দিষ্ট হতে হবে:

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

এই ফাংশনটি ঠিক কীভাবে encodeURIComponentসংজ্ঞায়িত হয় তা কাজ করে :

encodeURIComponent নিম্নলিখিত ব্যতীত সমস্ত অক্ষর থেকে পালিয়ে যায়: বর্ণানুক্রমিক, দশমিক সংখ্যা, - _ . ! ~ * ' ( )


ধন্যবাদ! আমি ভেবেছিলাম আমি কোনও ফাংশন ছাড়াই এটি করতে সক্ষম হব, তবে ঠিক আছে।
গাল

4
@ গাল: আপনার যদি অভিন্ন আউটপুট প্রয়োজন তবে কেবলমাত্র সেই ফাংশনটি আপনার প্রয়োজন হবে।
গম্বো

@ গম্বো গুগল ইমেজ অনুসন্ধানের জন্য ফায়ারফক্স এক্সটেনশনে আমি লক্ষ্য করেছি যে তারা একটি চিত্র জাভাস্ক্রিপ্ট এনকোডেরিকোনম্পোনেন্টে পাস করেছে। Addons.mozilla.org/nl/firefox/files/browse/126380/file/chrome/… , লাইন 137 দেখুন PH পিএইচপি তে কীভাবে আমি এটি করতে পারি?
ব্যবহারকারী410932

ধন্যবাদ গম্বো এটি সহায়ক ছিল!
মারভিন থোবেজেন

আমি বিশ্বাস করি না কাঁচালুর্লেঙ্কোড এনকোড কমা (যা ইউআরআই উপাদানগুলির জন্য করা দরকার)।
ক্রিস রাই

6

আপনি চেষ্টা করেছেন urlencode?


4
হ্যাঁ. সমস্যাটি হ'ল এটি পুরোপুরি এনকোডুরির মতো নয়, এটি প্রতিটি চরিত্রকে রূপান্তরিত করে, এমনকি আমি এমন কিছু চেয়েছিলাম যা আমাকে হস্তক্ষেপ না করে ঠিক একইভাবে কাজ করবে ^^
গাল

2

ফাংশন এনকোডেরিকোনমিক উপাদান ($ স্ট্রিং) {
   $ ফলাফল = "";
   ($ i = 0; $ i <strlen ($ স্ট্রিং); $ i ++) {এর জন্য
      $ ফলাফল। = এনকোর্ডিউআরসিওকোয়েন্টিওবিস্ক্যাক্টর (ইউরেলকোড ($ স্ট্রিং [$ i]));
   }
   প্রত্যাবর্তন $ ফলাফল;
}

ফাংশন এনকোডেরিউআইআরকিউম্পোনমেন্টবিচারাকটার ($ চর) { যদি ($ চর == "+") {"% 20" ফেরত দেয়; } যদি ($ চর == "% 21") {ফেরত "!"; } যদি ($ চর == "% 27") {প্রত্যাবর্তন '' ''; যদি ($ চর == "% 28") {ফেরত "("; যদি ($ চর == "% 29") {রিটার্ন ")"; } যদি ($ চর == "% 2A") {ফেরত "*"; } যদি ($ চর == "% 7E") {"~" ফেরত দেয়; } যদি ($ চর == "% 80") {"% ই 2% 82% এসি" ফেরত দেয়; } যদি ($ চর == "% 81") {"% সি 2% 81" ফেরত দেয়; } যদি ($ চর == "% 82") {"% E2% 80% 9A" ফেরত দেয়; } যদি ($ চর == "% 83") {"% C6% 92" ফেরত দেয়; } যদি ($ চর == "% 84") {"% E2% 80% 9E" ফেরত দেয়; } যদি ($ চর == "% 85") {"% E2% 80% A6" ফেরত দেয়; } যদি ($ চর == "% 86") {"% E2% 80% A0" ফেরত দেয়; } যদি ($ চর == "% 87") {"% ই 2% 80% এ 1" ফেরত দেয়; } যদি ($ চর == "% 88") {"% সিবি% 86" ফেরত দেয়; } যদি ($ চর == "% 89") {"% ই 2% 80% বি0" ফেরত দেয়; } যদি ($ চর == "% 8A") {"% C5% A0" ফেরত দেয়; } যদি ($ চর == "% 8B") {"% ই 2% 80% বি 9" ফেরত দেয়; } যদি ($ চর == "% 8 সি") {"% সি 5% 92" ফেরত দেয়; } যদি ($ চর == "% 8D") {"% সি 2% 8 ডি" ফেরত দেয়; } যদি ($ চর == "% 8E") {"% সি 5% বিডি" ফেরত দেয়; } যদি ($ চর == "% 8F") {"% সি 2% 8 এফ" ফিরিয়ে দেয়; } যদি ($ চর == "% 90") {"% সি 2% 90" ফেরত দেয়; } যদি ($ চর == "% 91") {"% ই 2% 80% 98" ফেরত দেয়; } যদি ($ চর == "% 92") {"% ই 2% 80% 99" ফেরত দেয়; } যদি ($ চর == "% 93") {"% ই 2% 80% 9 সি" ফেরত দেয়; } যদি ($ চর == "% 94") {"% E2% 80% 9D" ফেরত দেয়; } যদি ($ চর == "% 95") {"% ই 2% 80% এ 2" ফেরত দেয়; } যদি ($ চর == "% 96") {"% ই 2% 80% 93" ফেরত দেয়; } যদি ($ চর == "% 97") {"% ই 2% 80% 94" ফেরত দেয়; } যদি ($ চর == "% 98") {"% সিবি% 9 সি" ফেরত দেয়; } যদি ($ চর == "% 99") {"% ই 2% 84% এ 2" ফেরত দেয়; } যদি ($ চর == "% 9A") {"% সি 5% এ 1" ফেরত দেয়; } যদি ($ চর == "% 9B") {"% ই 2% 80% বিএ" ফেরত দেয়; } যদি ($ চর == "% 9 সি") {"% সি 5% 93" ফেরত দেয়; } যদি ($ চর == "% 9D") {"% সি 2% 9 ডি" ফেরত দেয়; } যদি ($ চর == "% 9E") {"% C5% BE" ফেরত দেয়; } যদি ($ চর == "% 9F") {"% সি 5% বি 8" ফেরত দেয়; } যদি ($ চর == "% A0") {"% সি 2% এ0" ফেরত দেয়; } যদি ($ চর == "% এ 1") {"% সি 2% এ 1" ফেরত দেয়; } যদি ($ চর == "% এ 2") {"% সি 2% এ 2" ফেরত দেয়; } যদি ($ চর == "% এ 3") {"% সি 2% এ 3" ফেরত দেয়; } যদি ($ চর == "% এ 4") {"% সি 2% এ 4" ফেরত দেয়; } যদি ($ চর == "% এ 5") {"% সি 2% এ 5" ফেরত দেয়; } যদি ($ চর == "% A6") {"% সি 2% এ 6" ফেরত দেয়; } যদি ($ চর == "% এ 7") {"% সি 2% এ 7" ফেরত দেয়; } যদি ($ চর == "% A8") {"% সি 2% এ 8" ফেরত দেয়; } যদি ($ চর == "% A9") {"% সি 2% এ 9" ফেরত দেয়; } যদি ($ চর == "% এএ") {"% সি 2% এএ" ফেরত দেয়; } যদি ($ চর == "% AB")% "% C2% AB" ফেরত দেয়; } যদি ($ চর == "% এসি") {"% সি 2% এসি" ফেরত দেয়; } যদি ($ চর == "% AD") {"% C2% AD" ফেরত দেয়; } যদি ($ চর == "% এই") {"% সি 2% এই" ফেরত দেয়; } যদি ($ চর == "% এএফ") {"% সি 2% এফ" ফিরিয়ে দেয়; } যদি ($ চর == "% B0") {"% সি 2% বি0" ফিরিয়ে দেয়; } যদি ($ চর == "% বি 1") {"% সি 2% বি 1" ফেরত দেয়; } যদি ($ চর == "% বি 2") {"% সি 2% বি 2" ফেরত দেয়; } যদি ($ চর == "% বি 3") {"% সি 2% বি 3" ফেরত দেয়; } যদি ($ চর == "% B4") {"% সি 2% বি 4" ফেরত দেয়; } যদি ($ চর == "% বি 5") {"% সি 2% বি 5" ফেরত দেয়; } যদি ($ চর == "% B6") {"% সি 2% বি 6" ফেরত দেয়; } যদি ($ চর == "% B7") {"% সি 2% বি 7" ফেরত দেয়; } যদি ($ চর == "% B8") {"% সি 2% বি 8" ফেরত দেয়; } যদি ($ চর == "% B9") {"% সি 2% বি 9" ফেরত দেয়; } যদি ($ চর == "% বিএ") {"% সি 2% বিএ" ফেরত দেয়; } যদি ($ চর == "% বিবি") {"% সি 2% বিবি" ফেরত দেয়; } যদি ($ চর == "% বিসি") {"% সি 2% বিসি" ফিরিয়ে দেয়; } যদি ($ চর == "% বিডি") {"% সি 2% বিডি" ফেরত দেয়; } যদি ($ চর == "% BE") {"% C2% BE" ফেরত দেয়; } যদি ($ চর == "% BF")% "% C2% BF" ফেরত দেয়; } যদি ($ চর == "% C0") {"% সি 3% 80" ফেরত দেয়; } যদি ($ চর == "% সি 1") {"% সি 3% 81" ফেরত দেয়; } যদি ($ চর == "% সি 2") {"% সি 3% 82" ফেরত দেয়; } যদি ($ চর == "% সি 3") {"% সি 3% 83" ফেরত দেয়; } যদি ($ চর == "% সি 4") {"% সি 3% 84" ফেরত দেয়; } যদি ($ চর == "% সি 5") {"% সি 3% 85" ফেরত দেয়; } যদি ($ চর == "% C6") {"% সি 3% 86" ফেরত দেয়; } যদি ($ চর == "% সি 7") {"% সি 3% 87" ফেরত দেয়; } যদি ($ চর == "% সি 8") {"% সি 3% 88" ফেরত দেয়; } যদি ($ চর == "% সি 9") {"% সি 3% 89" ফেরত দেয়; } যদি ($ চর == "% সিএ") {"% সি 3% 8 এ" ফেরত দেয়; } যদি ($ চর == "% সিবি") {"% সি 3% 8 বি" ফেরত দেয়; } যদি ($ চর == "% সিসি") {"% সি 3% 8 সি" ফেরত দেয়; } যদি ($ চর == "% সিডি") {"% সি 3% 8 ডি" ফেরত দেয়; } যদি ($ চর == "% সিই") {"% সি 3% 8 ই" ফেরত দেয়; } যদি ($ চর == "% সিএফ") {"% সি 3% 8 এফ" ফিরিয়ে দেয়; } যদি ($ চর == "% D0") {"% সি 3% 90" ফেরত দেয়; } যদি ($ চর == "% ডি 1") {"% সি 3% 91" ফেরত দেয়; } যদি ($ চর == "% ডি 2") {"% সি 3% 92" ফেরত দেয়; } যদি ($ চর == "% ডি 3") {"% সি 3% 93" ফেরত দেয়; } যদি ($ চর == "% ডি 4") {"% সি 3% 94" ফেরত দেয়; } যদি ($ চর == "% D5") {"% সি 3% 95" ফেরত দেয়; } যদি ($ চর == "% ডি 6") {"% সি 3% 96" ফেরত দেয়; } যদি ($ চর == "% D7") {"% সি 3% 97" ফেরত দেয়; } যদি ($ চর == "% D8") {"% সি 3% 98" ফেরত দেয়; } যদি ($ চর == "% D9") {"% সি 3% 99" ফেরত দেয়; } যদি ($ চর == "% ডিএ") {"% সি 3% 9 এ" ফেরত দেয়; } যদি ($ চর == "% ডিবি") {"% সি 3% 9 বি" ফেরত দেয়; } যদি ($ চর == "% ডিসি") {"% সি 3% 9 সি" ফেরত দেয়; } যদি ($ চর == "% ডিডি") {"% সি 3% 9 ডি" ফেরত দেয়; } যদি ($ চর == "% ডি") {"% সি 3% 9 ই" ফেরত দেয়; } যদি ($ চর == "% DF") {"% C3% 9F" ফেরত দেয়; } যদি ($ চর == "% E0") {"% C3% A0" ফেরত দেয়; } যদি ($ চর == "% ই 1") {"% সি 3% এ 1" ফেরত দেয়; } যদি ($ চর == "% ই 2") {"% সি 3% এ 2" ফেরত দেয়; } যদি ($ চর == "% E3") {"% সি 3% এ 3" ফেরত দেয়; } যদি ($ চর == "% E4") {"% সি 3% এ 4" ফেরত দেয়; } যদি ($ চর == "% E5") {"% সি 3% এ 5" ফেরত দেয়; } যদি ($ চর == "% E6") {"% সি 3% এ 6" ফেরত দেয়; } যদি ($ চর == "% E7") {"% সি 3% এ 7" ফেরত দেয়; } যদি ($ চর == "% E8") {"% সি 3% এ 8" ফেরত দেয়; } যদি ($ চর == "% E9") {"% সি 3% এ 9" ফেরত দেয়; } যদি ($ চর == "% ইএ") {"% সি 3% এএ" ফেরত দেয়; } যদি ($ চর == "% EB") {"% C3% AB" ফেরত দেয়; } যদি ($ চর == "% ইসি") {"% সি 3% এসি" ফেরত দেয়; } যদি ($ চর == "% ED") {"% C3% AD" ফেরত দেয়; } যদি ($ চর == "% EE") {"% সি 3% এই" ফেরত দেয়; } যদি ($ চর == "% EF") {"% সি 3% এফ" ফিরিয়ে দেয়; } যদি ($ চর == "% F0") {"% সি 3% বি0" ফেরত দেয়; } যদি ($ চর == "% এফ 1") {"% সি 3% বি 1" ফেরত দেয়; } যদি ($ চর == "% এফ 2")% "% সি 3% বি 2" ফেরত দেয়; } যদি ($ চর == "% F3") {"% সি 3% বি 3" ফেরত দেয়; } যদি ($ চর == "% F4") {"% সি 3% বি 4" ফেরত দেয়; } যদি ($ চর == "% F5") {"% সি 3% বি 5" ফেরত দেয়; } যদি ($ চর == "% F6") {"% সি 3% বি 6" ফেরত দেয়; } যদি ($ চর == "% F7") {"% সি 3% বি 7" ফেরত দেয়; } যদি ($ চর == "% F8") {"% সি 3% বি 8" ফেরত দেয়; } যদি ($ চর == "% F9") {"% সি 3% বি 9" ফেরত দেয়; } যদি ($ চর == "% এফএ") {"% সি 3% বিএ" ফেরত দেয়; } যদি ($ চর == "% এফবি") {"% সি 3% বিবি" ফেরত দেয়; } যদি ($ চর == "% এফসি") {"% সি 3% বিসি" ফিরিয়ে দেয়; } যদি ($ চর == "% এফডি") {"% সি 3% বিডি" ফেরত দেয়; } যদি ($ চর == "% FE") {"% C3% BE" ফেরত দেয়; } যদি ($ চর == "% এফএফ") {"% সি 3% বিএফ" ফিরিয়ে দেয়; } প্রত্যাবর্তন $ চর; }


এখানেই একটি স্যুইচ স্টেটমেন্টটি কাজে আসবে
ইয়াডা

4
উত্তরের যুক্তিটি আমার কাছে তর্কযোগ্য, যাইহোক আইফ বা সুইচ চেইন উভয় ক্ষেত্রেই এই ক্ষেত্রে ভাল অভিনয় করে না। এটি একটি সাধারণ কেস যেখানে একটি সূচকযুক্ত অ্যারে হ'ল সেরা সমাধান, যেখানে দেখার মানটি মূল।
যোদাবার

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));

}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.