String SEO optimieren (creating SEO friendly URL)
2016-03-14

2018-04-22 12:30:19 PHP,SEO,DE

English Version: Creating SEO friendly URL

Die u.g. Funktion seofy() erzeugt aus einem String eine SEO freundliche Version. Es werden Umlaute und andere nicht im ASCII Zeichensatz enthaltenen Buchstaben entweder auf das Grundform Äquivalent reduziert (z.B.: aus é wird e und aus ú wird u) oder komplett umschrieben (z.B.: aus ß wird ss und aus ü wird ue).

Dies gelingt zum Einen da initial die php Funktion preg_replace die Ersetzung mittels unicode - also Unicode Regular Expressions - vornimmt und zum Anderen weil mittels php Funktion iconv mit Option TRANSLIT eine annähernde Übersetzung versucht wird.

Zitat php.net zu iconv und TRANSLIT:

Wenn Sie die Zeichenkette //TRANSLIT an out_charset anhängen, wird die Transliteration aktiviert. Das bedeutet, dass ein Zeichen, das im Zielzeichensatz nicht dargestellt werden kann mit einem oder mehreren ähnlich aussehenden Zeichen annähernd dargestellt werden kann.[…]

Beispiele

  • Straßenfest in München strassenfest-in-muenchen
  • José Ignacio López de Arriortúa jose-ignacio-lopez-de-arriortua
<?php 
/**
 * bereitet einen String SEO optimiert auf
 * @param String $sString 
 * @return String $sString SEO optimierter String
 */
function seofy ($sString = '')
{
    $sString = preg_replace('/[^\\pL\d_]+/u', '-', $sString);
    $sString = trim($sString, "-");
    $sString = iconv('utf-8', "us-ascii//TRANSLIT", $sString);
    $sString = strtolower($sString);
    $sString = preg_replace('/[^-a-z0-9_]+/', '', $sString);

    return $sString;
}

Links