encodeURIcomponent
পিএইচপি-তে জাভাস্ক্রিপ্টের ফাংশনের সমতুল্য কী ?
উত্তর:
ব্যবহার করে দেখুন rawurlencode
। বা আরও সুনির্দিষ্ট হতে হবে:
function encodeURIComponent($str) {
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
return strtr(rawurlencode($str), $revert);
}
এই ফাংশনটি ঠিক কীভাবে encodeURIComponent
সংজ্ঞায়িত হয় তা কাজ করে :
encodeURIComponent
নিম্নলিখিত ব্যতীত সমস্ত অক্ষর থেকে পালিয়ে যায়: বর্ণানুক্রমিক, দশমিক সংখ্যা,-
_
.
!
~
*
'
(
)
ফাংশন এনকোডেরিকোনমিক উপাদান ($ স্ট্রিং) { $ ফলাফল = ""; ($ 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% বিএফ" ফিরিয়ে দেয়; } প্রত্যাবর্তন $ চর; }
এই কোডটি কেমন?
আমি প্রতিটি স্তর এনকোড করেছি।
আসলে এটি এনকোডুরির মতো নয় তবে আপনি এনকোড করতে পারবেন তবে হোস্টের নাম এবং "/"
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));
}