JavaScript'in encodeURIcomponent
PHP'deki işlevinin karşılığı nedir ?
Yanıtlar:
Deneyin rawurlencode
. Veya daha kesin olmak gerekirse:
function encodeURIComponent($str) {
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
return strtr(rawurlencode($str), $revert);
}
Bu fonksiyon tam olarak çalıştığını nasıl encodeURIComponent
tanımlanır :
encodeURIComponent
aşağıdakiler dışındaki tüm karakterlerden kaçar: alfabetik, ondalık basamaklar,-
_
.
!
~
*
'
(
)
function encodeURIComponent ($ dize) { $ sonuç = ""; for ($ i = 0; $ i <strlen ($ string); $ i ++) { $ sonuç. = encodeURIComponentbycharacter (urlencode ($ string [$ i])); } $ sonuç döndür; }function encodeURIComponentbycharacter ($ karakter) { eğer ($ karakter == "+") {"% 20" döndür; } eğer ($ karakter == "% 21") {dönüş "!"; } eğer ($ karakter == "% 27") {return '"';} eğer ($ karakter == "% 28") {dönüş "(";} eğer ($ karakter == "% 29") {dönüş ")"; } eğer ($ karakter == "% 2A") {return "*"; } eğer ($ karakter == "% 7E") {dönüş "~"; } eğer ($ karakter == "% 80") {"% E2% 82% AC" döndür; } eğer ($ karakter == "% 81") {"% C2% 81" döndür; } eğer ($ karakter == "% 82") {"% E2% 80% 9A" döndür; } eğer ($ karakter == "% 83") {"% C6% 92" döndür; } eğer ($ karakter == "% 84") {"% E2% 80% 9E" döndür; } eğer ($ karakter == "% 85") {"% E2% 80% A6" döndür; } eğer ($ karakter == "% 86") {"% E2% 80% A0" döndür; } eğer ($ karakter == "% 87") {"% E2% 80% A1" döndür; } eğer ($ char == "% 88") {"% CB% 86" döndür; } eğer ($ karakter == "% 89") {"% E2% 80% B0" döndür; } eğer ($ karakter == "% 8A") {"% C5% A0" döndür; } eğer ($ karakter == "% 8B") {"% E2% 80% B9" döndür; } eğer ($ karakter == "% 8C") {"% C5% 92" döndür; } eğer ($ karakter == "% 8D") {"% C2% 8D" döndür; } eğer ($ karakter == "% 8E") {"% C5% BD" döndür; } eğer ($ karakter == "% 8F") {"% C2% 8F" döndür; } eğer ($ karakter == "% 90") {"% C2% 90" döndür; } eğer ($ karakter == "% 91") {"% E2% 80% 98" döndür; } eğer ($ karakter == "% 92") {"% E2% 80% 99" döndür; } eğer ($ karakter == "% 93") {"% E2% 80% 9C" döndür; } eğer ($ karakter == "% 94") {"% E2% 80% 9D" döndür; } eğer ($ karakter == "% 95") {"% E2% 80% A2" döndür; } eğer ($ karakter == "% 96") {"% E2% 80% 93" döndür; } eğer ($ karakter == "% 97") {"% E2% 80% 94" döndür; } eğer ($ char == "% 98") {"% CB% 9C" döndür; } eğer ($ karakter == "% 99") {"% E2% 84% A2" döndür; } eğer ($ karakter == "% 9A") {"% C5% A1" döndür; } eğer ($ karakter == "% 9B") {"% E2% 80% BA" döndür; } eğer ($ karakter == "% 9C") {"% C5% 93" döndür; } eğer ($ karakter == "% 9D") {"% C2% 9D" döndür; } eğer ($ karakter == "% 9E") {"% C5% BE" döndür; } eğer ($ karakter == "% 9F") {"% C5% B8" döndür; } eğer ($ karakter == "% A0") {"% C2% A0" döndür; } eğer ($ karakter == "% A1") {"% C2% A1" döndür; } eğer ($ karakter == "% A2") {"% C2% A2" döndür; } eğer ($ karakter == "% A3") {"% C2% A3" döndür; } eğer ($ karakter == "% A4") {"% C2% A4" döndür; } eğer ($ karakter == "% A5") {"% C2% A5" döndür; } eğer ($ karakter == "% A6") {"% C2% A6" döndür; } eğer ($ char == "% A7") {"% C2% A7" döndür; } eğer ($ karakter == "% A8") {"% C2% A8" döndür; } eğer ($ karakter == "% A9") {"% C2% A9" döndür; } eğer ($ karakter == "% AA") {"% C2% AA" döndür; } eğer ($ karakter == "% AB") {"% C2% AB" döndür; } eğer ($ karakter == "% AC") {"% C2% AC" döndür; } eğer ($ karakter == "% AD") {"% C2% AD" döndür; } eğer ($ karakter == "% AE") {"% C2% AE" döndür; } eğer ($ karakter == "% AF") {"% C2% AF" döndür; } eğer ($ karakter == "% B0") {"% C2% B0" döndür; } eğer ($ karakter == "% B1") {"% C2% B1" döndür; } eğer ($ karakter == "% B2") {"% C2% B2" döndür; } eğer ($ karakter == "% B3") {"% C2% B3" döndür; } eğer ($ karakter == "% B4") {"% C2% B4" döndür; } eğer ($ karakter == "% B5") {"% C2% B5" döndür; } eğer ($ karakter == "% B6") {"% C2% B6" döndür; } eğer ($ karakter == "% B7") {"% C2% B7" döndür; } eğer ($ karakter == "% B8") {"% C2% B8" döndür; } eğer ($ karakter == "% B9") {"% C2% B9" döndür; } eğer ($ karakter == "% BA") {"% C2% BA" döndür; } eğer ($ karakter == "% BB") {"% C2% BB" döndür; } eğer ($ char == "% BC") {"% C2% BC" döndür; } eğer ($ karakter == "% BD") {"% C2% BD" döndür; } eğer ($ karakter == "% BE") {"% C2% BE" döndür; } eğer ($ karakter == "% BF") {"% C2% BF" döndür; } eğer ($ karakter == "% C0") {"% C3% 80" döndür; } eğer ($ karakter == "% C1") {"% C3% 81" döndür; } eğer ($ karakter == "% C2") {"% C3% 82" döndür; } eğer ($ karakter == "% C3") {"% C3% 83" döndür; } eğer ($ karakter == "% C4") {"% C3% 84" döndür; } eğer ($ karakter == "% C5") {"% C3% 85" döndür; } eğer ($ karakter == "% C6") {"% C3% 86" döndür; } eğer ($ karakter == "% C7") {"% C3% 87" döndür; } eğer ($ karakter == "% C8") {"% C3% 88" döndür; } eğer ($ karakter == "% C9") {"% C3% 89" döndür; } eğer ($ karakter == "% CA") {"% C3% 8A" döndür; } eğer ($ karakter == "% CB") {"% C3% 8B" döndür; } eğer ($ karakter == "% CC") {"% C3% 8C" döndür; } eğer ($ karakter == "% CD") {"% C3% 8D" döndür; } eğer ($ karakter == "% CE") {"% C3% 8E" döndür; } eğer ($ karakter == "% CF") {"% C3% 8F" döndür; } eğer ($ karakter == "% D0") {"% C3% 90" döndür; } eğer ($ karakter == "% D1") {"% C3% 91" döndür; } eğer ($ karakter == "% D2") {"% C3% 92" döndür; } eğer ($ karakter == "% D3") {"% C3% 93" döndür; } eğer ($ karakter == "% D4") {"% C3% 94" döndür; } eğer ($ karakter == "% D5") {"% C3% 95" döndür; } eğer ($ karakter == "% D6") {"% C3% 96" döndür; } eğer ($ karakter == "% D7") {"% C3% 97" döndür; } eğer ($ karakter == "% D8") {"% C3% 98" döndür; } eğer ($ karakter == "% D9") {"% C3% 99" döndür; } eğer ($ karakter == "% DA") {"% C3% 9A" döndür; } eğer ($ karakter == "% DB") {"% C3% 9B" döndür; } eğer ($ karakter == "% DC") {"% C3% 9C" döndür; } eğer ($ karakter == "% DD") {"% C3% 9D" döndür; } eğer ($ karakter == "% DE") {"% C3% 9E" döndür; } eğer ($ karakter == "% DF") {"% C3% 9F" döndür; } eğer ($ karakter == "% E0") {"% C3% A0" döndür; } eğer ($ karakter == "% E1") {"% C3% A1" döndür; } eğer ($ karakter == "% E2") {"% C3% A2" döndür; } eğer ($ karakter == "% E3") {"% C3% A3" döndür; } eğer ($ karakter == "% E4") {"% C3% A4" döndür; } eğer ($ karakter == "% E5") {"% C3% A5" döndür; } eğer ($ karakter == "% E6") {"% C3% A6" döndür; } eğer ($ karakter == "% E7") {"% C3% A7" döndür; } eğer ($ karakter == "% E8") {"% C3% A8" döndür; } eğer ($ karakter == "% E9") {"% C3% A9" döndür; } eğer ($ karakter == "% EA") {"% C3% AA" döndür; } eğer ($ karakter == "% EB") {"% C3% AB" döndür; } eğer ($ karakter == "% EC") {"% C3% AC" döndür; } eğer ($ karakter == "% ED") {"% C3% AD" döndür; } eğer ($ karakter == "% EE") {"% C3% AE" döndür; } eğer ($ karakter == "% EF") {"% C3% AF" döndür; } eğer ($ karakter == "% F0") {"% C3% B0" döndür; } eğer ($ karakter == "% F1") {"% C3% B1" döndür; } eğer ($ karakter == "% F2") {"% C3% B2" döndür; } eğer ($ karakter == "% F3") {"% C3% B3" döndür; } eğer ($ karakter == "% F4") {"% C3% B4" döndür; } eğer ($ karakter == "% F5") {"% C3% B5" döndür; } eğer ($ karakter == "% F6") {"% C3% B6" döndür; } eğer ($ karakter == "% F7") {"% C3% B7" döndür; } eğer ($ karakter == "% F8") {"% C3% B8" döndür; } eğer ($ karakter == "% F9") {"% C3% B9" döndür; } eğer ($ karakter == "% FA") {"% C3% BA" döndür; } eğer ($ karakter == "% FB") {"% C3% BB" döndür; } eğer ($ karakter == "% FC") {"% C3% BC" döndür; } eğer ($ karakter == "% FD") {"% C3% BD" döndür; } eğer ($ karakter == "% FE") {"% C3% BE" döndür; } eğer ($ karakter == "% FF") {"% C3% BF" döndür; } $ karakter döndür; }
bu kod nasıl?
Her katmanı kodladım.
aslında encodeURI ile aynı değildir, ancak kodlayabilirsiniz ancak ana bilgisayar adı ve "/"
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));
}