alabacaknet adlı üyeden alıntı

urlencode() ile çektikten sonra urldecode() ile eski haline getirmen lazım
url encode bildiğim kadarıyla şunu önler:

GET ile gönderilecek varsayılan değer: Ali & Mehmet
Normalde olması gereken adres: index.php?kimler=Ali & Mehmet

Ama "&" işareti özel bir işarettir, bu yüzden PHP şöyle algılayacak

$_GET['kimler'] = 'Ali ';
$_GET[' Mehmet'] = null;

Tabi bu bir örnek, diğer UTF-8 olan ama latin olmayan karakterleri de düzeltecektir(ö'yü oe yapmamız gibi ama "%20" tarzı çevirecek)

urldecode() ile çevrilmişleri geri kazanacaksın, benim aklımda şöyle bir şey var ama hiç kullanmadım, zararlı da olabilir


function duzenle(&$d=array()) {
if( !is_array($d) ) { return array(); }
foreach($d as $k => $v) { if( is_array($v) { $d[$k] = duzenle($v); } else { $d[$k] = urldecode($v); } }
return $d;
}
$_GET = duzenle($_GET);


Hocam ilgin alakan için sağoalsın ama o kod işimi görmedi. sistem algoritması biraz farklı olduğu için sıfırdan bi kod yazıp kendim çözdüm.. Çözmüş olduğum kodu yazıyorum. belki birilerinin işini görür ..

function replace_tr($text) {
$text = trim($text);
$search = array('%C3%87','%C3%A7','%C4%9E','%C4%9F','%C4%B1','%C4%B0','%C3%96','%C3%B6','%C5%9E','%C5%9F','%C3%9C','%C3%BC','-');
$replace = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' ');
$new_text = str_replace($search,$replace,$text);
return $new_text;
}
?>

$kelime = urlencode($D->search_string);
$trsiz_kelime = replace_tr($kelime);
echo $trsiz_kelime;
?>