urlencode

(PHP 4, PHP 5, PHP 7)

urlencodeDizgeye URL kodlaması uygular

Açıklama

urlencode ( string $dizge ) : string

Değişkenleri sonraki sayfaya aktarmak için bir URL'nin parçası olarak bir sorgu dizgesinde kullanılmak üzere bir dizgeyi kodlar.

Değiştirgeler

dizge

Kodlanacak dizge.

Dönen Değerler

Belirtilen dizge içindeki karakterlerden, -_. dışındaki abecesayısal olmayan tüm karakterlerin yüzde (%) imiyle öncelenmiş iki onaltılık rakamla; boşlukların ise artı (+) imi ile değiştirildiği bir kodlama uygulanmış bir dizge döndürür. Bir HTML formundan gönderilen veriye de aynı kodlama uygulanır ve bu yolla elde edilen dizgenin biçemi application/x-www-form-urlencoded ortam türü olarak bilinir. Bu biçem, tarihsel sebeplerle boşlukların artı (+) imi ile kodlanmasıyla » RFC 1738 kodlamasından farklıdır (rawurlencode() işlevine bakınız).

Örnekler

Örnek 1 - urlencode() örneği

<?php
echo '<a href="mycgi?foo='urlencode($userinput), '">';
?>

Örnek 2 - urlencode() ve htmlentities() örneği

<?php
$query_string 
'foo=' urlencode($foo) . '&bar=' urlencode($bar);
echo 
'<a href="mycgi?' htmlentities($query_string) . '">';
?>

Notlar

Bilginize:

HTML öğeleri olarak ele alınabilecek değişken isimlerine karşı dikkatli olun. &amp, &copy and &pound gibi şeyler tarayıcı tarafından çözümlenir ve istenen değişken ismi yerine bu HTML öğesi kullanılır. Bu, W3C'nin yıllardır söyleye geldiği zorluklardan biridir. Bakınız: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP, değiştirge ayracının, W3C'nin önerdiği noktalı virgül olarak değiştirilmesini arg_separator.output php.ini yönergesi üzerinden destekler. Maalesef, çoğu tarayıcı form verisini noktalı virgül ayraçlı biçemde göndermemektedir. Daha taşınabilir bir yol, değiştirge ayracı olarak & yerine &amp; kullanmaktır. Bunu sağlamak için PHP'nin arg_separator.output yönergesinde değişiklik yapmanız gerekmez. Yönergenin değerini & olarak bırakın, fakat URL'lerinizi htmlentities() veya htmlspecialchars() ile kodlayın.

Ayrıca Bakınız

  • urldecode() - URL kodlamalı dizgenin kodlamasını çözer
  • htmlentities() - Dönüştürülebilecek tüm karakterleri HTML öğeleri haline getirir
  • rawurlencode() - RFC 1738'e uygun URL kodlaması yapar
  • rawurldecode() - URL kodlamalı dizgenin kodlamasını kaldırır