Zamiana ciągu na część adresu

Jak powszechnie wiadomo przy pozycjonowaniu przydają się słowa kluczowe w adresie. Najłatwiej to wykonać, umieszczając w URL np. nazwę artykułu, który użytkownik(lub bot) w danym momencie przegląda. Niestety pojawia się tutaj pewien problem: przeglądarki nie akceptują większości znaków alfanumerycznych w adresie.
Bez problemu można umieszczać myślniki i kropki, więc to wykorzystamy. W miejsce spacji wstawimy kropki, a myślniki pozostawię do Twojej dyspozycji(np. do prostego wykorzystania ModRewrite). Również pozbędziemy się polskich znaków i zrobimy tak, aby wszystko było małymi literami. Poniżej przedstawię, jak to wykonać w kilku prostych krokach.

1. Tworzymy tablicę z znakami, które będziemy zamieniać na inne

$zamien = array(
	' ', 'ę', 'ó', 'ą', 'ś', 'ł', 'ż', 'ź', 'ć', 'ń'
);

2. Tworzymy drugą tablicę z znakami, które będą zastępować powyższe(pierwszy element drugiej tablicy zastępuje pierwszy element pierwszej tablicy itd.)

$zamNa = array(
	'.', 'e', 'o', 'a', 's', 'l', 'z', 'z', 'c', 'n'
);

3. Ponieważ chcę ten kod umieścić w metodzie, użyję zwracania wartości, lecz możesz zamienić słowo „return” na „echo” – wtedy zostanie wyświetlony wynik działania skryptu. Jak już wspomniałem, litery mają być małe, więc użyjemy do tego funkcji mb_strtolower(jeżeli używasz innego kodowania niż UTF-8, wyedytuj drugi argument). Znaki alfanumeryczne zamienimy za pomocą prostego wyrażenia regularnego, a Nasze tablice wykorzystamy funkcją str_replace. Zmienna $ciag zawiera w sobie ciąg, na którym chcemy bazować.

return str_replace($zamien, $zamNa, ereg_replace('[[:punct:]]', '', mb_strtolower($ciag, 'utf-8')));

Cały kod w mojej metodzie prezentuje się tak:

public function uprDoLink($ciag) {
	$zamien = array(
		' ', 'ę', 'ó', 'ą', 'ś', 'ł', 'ż', 'ź', 'ć', 'ń'
	);
	$zamNa = array(
		'.', 'e', 'o', 'a', 's', 'l', 'z', 'z', 'c', 'n'
	);
	return str_replace($zamien, $zamNa, ereg_replace('[[:punct:]]', '', mb_strtolower($ciag, 'utf-8')));
}

I tak tym prostym kodem wykonaliśmy coś bardzo pożytecznego, a mianowicie stworzyliśmy metodę, która będzie zamieniała np. tytuły artykułów na tekst, który może znaleźć się w adresie. Nie pozostaje Ci nic innego, jak zaimplentować to do swojego skryptu i cieszyć się lepszymi wynikami w Google. ;-)

Wynik końcowy

Ciąg:

O ĘóąŚ-~`@#%$%&&*()

Wynik:

o.eoas
Za ten artykuł podziękowano 0 raz(y). Chcesz i Ty ?

One comment

  • Podgurek
    1 kwietnia 2009 - 12:12 | Permalink

    no widzę Łukasz się rozkręcił na dobre:) oby więcej takich:D

  • Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

    *

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">