PHP’de Türkçe Karakterli Başlığı Link Yapısına Uyarlama Fonksiyonu

PHP’de seo uyumlu seo kankası urller resim adları oluşturmak isteyebilirsiniz işte bunun için yazılmış bir fonksiyon

Fonksiyonu Bir Değişkene Atayarak Kullanmak:

$transliterate = function($string, $separator = '-') {
    $_transliteration = ["/ö|œ/" => "o",
        "/ü/" => "u",
        "/Ä/" => "A",
        "/Ü/" => "U",
        "/Ö/" => "O",
        "/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/" => "A",
        "/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/" => "a",
        "/Ç|Ć|Ĉ|Ċ|Č/" => "C",
        "/ç|ć|ĉ|ċ|č/" => "c",
        "/Ð|Ď|Đ/" => "D",
        "/ð|ď|đ/" => "d",
        "/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/" => "E",
        "/è|é|ê|ë|ē|ĕ|ė|ę|ě/" => "e",
        "/Ĝ|Ğ|Ġ|Ģ/" => "G",
        "/ĝ|ğ|ġ|ģ/" => "g",
        "/Ĥ|Ħ/" => "H",
        "/ĥ|ħ/" => "h",
        "/Ì|Í|Î|Ï|Ĩ|Ī| Ĭ|Ǐ|Į|İ/" => "I",
        "/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/" => "i",
        "/Ĵ/" => "J",
        "/ĵ/" => "j",
        "/Ķ/" => "K",
        "/ķ/" => "k",
        "/Ĺ|Ļ|Ľ|Ŀ|Ł/" => "L",
        "/ĺ|ļ|ľ|ŀ|ł/" => "l",
        "/Ñ|Ń|Ņ|Ň/" => "N",
        "/ñ|ń|ņ|ň|ʼn/" => "n",
        "/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/" => "O",
        "/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/" => "o",
        "/Ŕ|Ŗ|Ř/" => "R",
        "/ŕ|ŗ|ř/" => "r",
        "/Ś|Ŝ|Ş|Ș|Š/" => "S",
        "/ś|ŝ|ş|ș|š|ſ/" => "s",
        "/Ţ|Ț|Ť|Ŧ/" => "T",
        "/ţ|ț|ť|ŧ/" => "t",
        "/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/" => "U",
        "/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/" => "u",
        "/Ý|Ÿ|Ŷ/" => "Y",
        "/ý|ÿ|ŷ/" => "y",
        "/Ŵ/" => "W",
        "/ŵ/" => "w",
        "/Ź|Ż|Ž/" => "Z",
        "/ź|ż|ž/" => "z",
        "/Æ|Ǽ/" => "E",
        "/ß/" => "s",
        "/IJ/" => "J",
        "/ij/" => "j",
        "/Œ/" => "E",
        "/ƒ/" => ""];
    $quotedReplacement = preg_quote($separator, '/');
    $merge = [
        '/[^\s\p{Zs}\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
        '/[\s\p{Zs}]+/mu' => $separator,
        sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
    ];
    $map = $_transliteration + $merge;
    unset($_transliteration);
    return preg_replace(array_keys($map), array_values($map), $string);
};
 
// Kullanım örneği
$string = "Äpfel Über Öl und Übel!";
$result = $transliterate($string);
echo $result; // Apfel-Uber-Ol-und-Ubel

Fonksiyonu Bir Sınıf İçinde Tanımlayarak Kullanmak

class Transliterator {
    public static function transliterate($string, $separator = '-') {
        $_transliteration = ["/ö|œ/" => "o",
            "/ü/" => "u",
            "/Ä/" => "A",
            "/Ü/" => "U",
            "/Ö/" => "O",
            "/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/" => "A",
            "/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/" => "a",
            "/Ç|Ć|Ĉ|Ċ|Č/" => "C",
            "/ç|ć|ĉ|ċ|č/" => "c",
            "/Ð|Ď|Đ/" => "D",
            "/ð|ď|đ/" => "d",
            "/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/" => "E",
            "/è|é|ê|ë|ē|ĕ|ė|ę|ě/" => "e",
            "/Ĝ|Ğ|Ġ|Ģ/" => "G",
            "/ĝ|ğ|ġ|ģ/" => "g",
            "/Ĥ|Ħ/" => "H",
            "/ĥ|ħ/" => "h",
            "/Ì|Í|Î|Ï|Ĩ|Ī| Ĭ|Ǐ|Į|İ/" => "I",
            "/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/" => "i",
            "/Ĵ/" => "J",
            "/ĵ/" => "j",
            "/Ķ/" => "K",
            "/ķ/" => "k",
            "/Ĺ|Ļ|Ľ|Ŀ|Ł/" => "L",
            "/ĺ|ļ|ľ|ŀ|ł/" => "l",
            "/Ñ|Ń|Ņ|Ň/" => "N",
            "/ñ|ń|ņ|ň|ʼn/" => "n",
            "/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/" => "O",
            "/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/" => "o",
            "/Ŕ|Ŗ|Ř/" => "R",
            "/ŕ|ŗ|ř/" => "r",
            "/Ś|Ŝ|Ş|Ș|Š/" => "S",
            "/ś|ŝ|ş|ș|š|ſ/" => "s",
            "/Ţ|Ț|Ť|Ŧ/" => "T",
            "/ţ|ț|ť|ŧ/" => "t",
            "/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/" => "U",
            "/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/" => "u",
            "/Ý|Ÿ|Ŷ/" => "Y",
            "/ý|ÿ|ŷ/" => "y",
            "/Ŵ/" => "W",
            "/ŵ/" => "w",
            "/Ź|Ż|Ž/" => "Z",
            "/ź|ż|ž/" => "z",
            "/Æ|Ǽ/" => "E",
            "/ß/" => "s",
            "/IJ/" => "J",
            "/ij/" => "j",
            "/Œ/" => "E",
            "/ƒ/" => ""];
        $quotedReplacement = preg_quote($separator, '/');
        $merge = [
            '/[^\s\p{Zs}\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
            '/[\s\p{Zs}]+/mu' => $separator,
            sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
        ];
        $map = $_transliteration + $merge;
        unset($_transliteration);
        return preg_replace(array_keys($map),
Örnek Başlık: Keramet Sosunda: Fırın Poşetinde Çipura Tarifi
Çıktı Başlık: Keramet-Sosunda-Firin-Posetinde-Cipura-Tarifi