Php Sef URL Fonksiyonu Türkçe Karakter Sorunu Çözülmüş

İsmet

Updated on:

Php
SEO uyumlu URL

Merhaba arkadaşlar, Bu gün sizinle paylaşacağım

Php Sef URL Fonksiyonu

Türkçe karakter sorunu yaşamadan sef url oluşturmada bu fonksiyonu kullanabilirsiniz. Bu sitenizin seo çalışmalarında büyük bir etki sağlayacaktır.

function sef_url ( $url ) {<br />$turkcefrom = array("/Ğ/","/Ü/","/Ş/","/İ/","/Ö/","/Ç/","/ğ/","/ü/","/ş/","/ı/","/ö/","/ç/");<br />$turkceto = array("G","U","S","I","O","C","g","u","s","i","o","c");<br />$url = preg_replace("/[^0-9a-zA-ZÄzÜŞİÖÇğüşıöç]/"," ",$url);<br />// Türkçe harfleri ingilizceye çevir<br />$url = preg_replace($turkcefrom,$turkceto,$url);<br />// Birden fazla olan boşlukları tek boşluk yap<br />$url = preg_replace("/ +/"," ",$url);<br />// Boşukları - işaretine çevir<br />$url = preg_replace("/ /","-",$url);<br />// Tüm beyaz karekterleri sil<br />$url = preg_replace("/\s/","",$url);<br />// Karekterleri küçült<br />$url = strtolower($url);<br />// Başta ve sonda - işareti kaldıysa yoket<br />$url = preg_replace("/^-/","",$url);<br />$url = preg_replace("/-$/","",$url);<br />return $url;<br />}

Arkadaşlar 2 Adet Fonksiyon Paylaşıyorum Hangisini Kullanmak İsterseniz Onu Kullanınız.

/**<br />* @param $str<br />* @param array $options<br />* @return string<br />*/<br />function permalink($str, $options = array())<br />{<br />$str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());<br />$defaults = array(<br />'delimiter' => '-',<br />'limit' => null,<br />'lowercase' => true,<br />'replacements' => array(),<br />'transliterate' => true<br />);<br />$options = array_merge($defaults, $options);<br />$char_map = array(<br />// Latin<br />'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',<br />'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',<br />'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',<br />'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',<br />'ß' => 'ss',<br />'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',<br />'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',<br />'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',<br />'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',<br />'ÿ' => 'y',<br />// Latin symbols<br />'©' => '(c)',<br />// Greek<br />'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',<br />'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',<br />'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',<br />'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',<br />'Ϋ' => 'Y',<br />'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',<br />'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',<br />'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',<br />'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',<br />'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',<br />// Turkish<br />'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',<br />'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',<br />// Russian<br />'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',<br />'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',<br />'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',<br />'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',<br />'Я' => 'Ya',<br />'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',<br />'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',<br />'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',<br />'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',<br />'я' => 'ya',<br />// Ukrainian<br />'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',<br />'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',<br />// Czech<br />'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',<br />'Ž' => 'Z',<br />'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',<br />'ž' => 'z',<br />// Polish<br />'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',<br />'Ż' => 'Z',<br />'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',<br />'ż' => 'z',<br />// Latvian<br />'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',<br />'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',<br />'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',<br />'š' => 's', 'ū' => 'u', 'ž' => 'z'<br />);<br />$str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);<br />if ($options['transliterate']) {<br />$str = str_replace(array_keys($char_map), $char_map, $str);<br />}<br />$str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);<br />$str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);<br />$str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');<br />$str = trim($str, $options['delimiter']);<br />return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;<br />}<br />// Kullanımı<br />$deger = "Bu Türkçe Bir Yazıdır";<br />echo permalink($deger);<br />$deger = "Συχνές Ερωτήσεις";<br />echo permalink($deger);

İyi Çalışmalar..

Subscribe
Bildir
guest

1 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
Selim Tolga
Selim Tolga
3 yıl önce

Paylaşım için elinize sağlık;
Ama sorunu bir türlü çözemedim. Yukarıda verdiğiniz kodları nereye ekleme yapacağız? Biraz daha aydınlatıcı bilgi verirseniz memnun olurum.
Benim sitenin sorunu siteyi yeni bir sunucuya taşıdım, daha önce konulara ait linklerde herhangi bir sorun yoktu ama taşıma sonrası linklerde Türkçe karakterler ortaya çıktı bu sorunu nasıl çözebilirim?
Taşıma öncesi linkler: …/araba-agaci-sis-gibi-ezdi.html
Taşıma sonrası linkler böyle oldu: …/araba-ağacı-şiş-gibi-ezdi.html