encodeURIcomponentPHP में जावास्क्रिप्ट के कार्य के बराबर क्या है ?
जवाबों:
कोशिश करो rawurlencode। या अधिक सटीक होने के लिए:
function encodeURIComponent($str) {
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
return strtr(rawurlencode($str), $revert);
}
यह फ़ंक्शन ठीक उसी तरहencodeURIComponent काम करता है जिसे परिभाषित किया गया है :
encodeURIComponentनिम्नलिखित को छोड़कर सभी वर्णों से बच जाता है: वर्णमाला, दशमलव अंक,-_.!~*'()
फ़ंक्शन एनकोडरिकम्पोनेंट ($ स्ट्रिंग) {
$ परिणाम = "";
के लिए ($ 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"; }
$ चार वापसी;
}
यह कोड कैसा है?
मैंने प्रत्येक स्तर को एनकोड किया।
वास्तव में यह एन्कोडर्इ के समान नहीं है, लेकिन आप होस्ट नाम और "/" को एन्कोड कर सकते हैं
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));
}