kaan05 adlı üyeden alıntı: mesajı görüntüle
Ünlem işaretinin karşısındaki tre ( - ) olan alanı komple silin, sadece tırnaklar kalsın. Sorun çözülür.
function seo($bas)
{ 
    $bas = str_replace(array(""","'"), NULL, $bas);
    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-',);
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ',);
    $perma = strtolower(str_replace($bul, $yap, $bas));
   
    $perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
    $perma = trim(preg_replace('/\s+/',' ', $perma));
    $perma = str_replace(' ', '-', $perma);
    return $perma;
}

Üstteki kod yerine bunu kullandım , ünlem işareti sorunu çözüldü ama şimdi de

">" işareti sorunu var.

Bu işaretin olduğu yerleri "gt" diye çeviriyor , hiç bir şekilde de başka bir şeye çeviremiyorum.


Edit : ">" bu işareti "gt" olarak çevirdiği için , şöyle bir şey yaptım çevirdi ;

$bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-', 'gt');
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ', 'as' );
Ama haliyle her bulduğu gt kelimesini as diye çevirecek bu şekilde.


Edit 2 :

function seo($bas)
{ 
    $bas = str_replace(array(""","'"), NULL, $bas);
    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-', '&gt', '&lt');
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ', ' ', '');
    $perma = strtolower(str_replace($bul, $yap, $bas));
   
    $perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
    $perma = trim(preg_replace('/\s+/',' ', $perma));
    $perma = str_replace(' ', '-', $perma);
	 
    return $perma;
}
Bu kod çözüyor.

&gt greater than
&lt lesser than