PHP – urlencode() ve urldecode() Fonksiyonları

10 Haziran 2020 tarihinde Emre Can ÖZTAŞ tarafından paylaşıldı.

Web ortamında; bir sayfadan diğer sayfaya veri aktarımı yaparken, bu verilerin belirli bir standartlarda kodlanması gerekir. Bunun nedeni de; düzensiz verilerin anlaşılmazlığını ortadan kaldırmak içindir.

Bir sayfadan diğer sayfaya gelen kodlanmış veri de yine aynı kodlama standardı kullanılarak çözülür.

PHP ortamında; URL kodlama ve kod çözme işlemi için genelde urlencode() ve urldecode() fonksiyonları kullanılır. Bunların dışında RFC 1738‘e uygun olarak kullanılabilecek: rawurlencode() ve rawurldecode() fonksiyonları da vardır. Fakat bu yazı da; urlencode() ve urldecode() kavramlarına değineceğiz.

urlencode()

urlencode() fonksiyonu URL kodlama işlemini yerine getirir. Bunu daha iyi anlamak için aşağıdaki basit örneğimize bakalım.

<?php

$name = 'Emre Can ÖZTAŞ';

$name değişkenimizde; ‘Emre Can ÖZTAŞ’ değerini saklıyoruz. Bu değeri bir diğer sayfaya bu şekilde aktarımını yapamayız. Neden? Çünkü boşluk, özel karakterler veya işaretlemeler kabul edilmezler. Dikkat ederseniz; Türkçe karakterlerde kabul edilmezler.

Peki ne yapmamız lazım?

$encoded = urlencode($name);

Yukarıdaki satırımızda; ifademizi kodladık. İfademizin çıktısı da aşağıdaki gibi olacaktır.

Emre+Can+%C3%96ZTA%C5%9E

Görüldüğü gibi kodlanan ifade artık her yerde tanınır hale gelmiştir. Bu ifadeyi de şu şekilde kullanabiliriz.

$url = 'https://emrecanoztas.com?s=' . $encoded;

Ekran çıktımız da aşağıdaki gibi olacaktır.

https://emrecanoztas.com?s=Emre+Can+%C3%96ZTA%C5%9E

Peki URL kodlama standartları daha doğrusu karakterleri nelerdir?

backspace      %08
tab            %09
linefeed       %0A
creturn        %0D
space          %20
!              %21
"              %22
#              %23
$              %24
%              %25
&              %26
'              %27
(              %28
)              %29
*              %2A
+              %2B
,              %2C
-              %2D
.              %2E
/              %2F
0              %30
1              %31
2              %32
3              %33
4              %34
5              %35
6              %36
7              %37
8              %38
9              %39
:              %3A
;              %3B
<              %3C
=              %3D
>              %3E
?              %3F
@              %40
A              %41
B              %42
C              %43
D              %44
E              %45
F              %46
G              %47
H              %48
I              %49
J              %4A
K              %4B
L              %4C
M              %4D
N              %4E
O              %4F
P              %50
Q              %51
R              %52
S              %53
T              %54
U              %55
V              %56
W              %57
X              %58
Y              %59
Z              %5A
[              %5B
\              %5C
]              %5D
^              %5E
_              %5F
`              %60
a              %61
b              %62
c              %63
d              %64
e              %65
f              %66
g              %67
h              %68
i              %69
j              %6A
k              %6B
l              %6C
m              %6D
n              %6E
o              %6F
p              %70
q              %71
r              %72
s              %73
t              %74
u              %75
v              %76
w              %77
x              %78
y              %79
z              %7A
{              %7B
|              %7C
}              %7D
~              %7E
¢              %A2
£              %A3
¥              %A5
|              %A6
§              %A7
«              %AB
¬              %AC
¯              %AD
º              %B0
±              %B1
ª              %B2
,              %B4
µ              %B5
»              %BB
¼              %BC
½              %BD
¿              %BF
À              %C0
Á              %C1
              %C2
à             %C3
Ä              %C4
Å              %C5
Æ              %C6
Ç              %C7
È              %C8
É              %C9
Ê              %CA
Ë              %CB
Ì              %CC
Í              %CD
Î              %CE
Ï              %CF
Ð              %D0
Ñ              %D1
Ò              %D2
Ó              %D3
Ô              %D4
Õ              %D5
Ö              %D6
Ø              %D8
Ù              %D9
Ú              %DA
Û              %DB
Ü              %DC
Ý              %DD
Þ              %DE
ß              %DF
à              %E0
á              %E1
â              %E2
ã              %E3
ä              %E4
å              %E5
æ              %E6
ç              %E7
è              %E8
é              %E9
ê              %EA
ë              %EB
ì              %EC
í              %ED
î              %EE
ï              %EF
ð              %F0
ñ              %F1
ò              %F2
ó              %F3
ô              %F4
õ              %F5
ö              %F6
÷              %F7
ø              %F8
ù              %F9
ú              %FA
û              %FB
ü              %FC
ý              %FD
þ              %FE
ÿ              %FF

şeklindedir.

urldecode()

urlencode() fonksiyonu ile kodlanmış URL’i eski haline getirir. urlencode() başlığında verdiğimiz örneği tekrar ele alalım.

$name = 'Emre Can ÖZTAŞ';
$encoded = urlencode($name);

$encoded değişkenindeki kodlanmış veriyi tekrar eski haline getirelim.

$decoded = urldecode($encoded);

Yukarıdaki satırımızın ekran çıktısı da aşağıdaki gibi olacaktır.

Emre Can ÖZTAŞ

Örneklerden de görüldüğü üzere; verinin şifrelenmesi ve şifrenin çözülmesi işlemleri oldukça basit.

 

Kategoriler: [PHP] Etiketler: #encoded #urldecode() #urlencode()

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.