Ü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('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-', '>', '<');
$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.
> greater than
< lesser than