Pozycjonowanie strony w PHP - przyjazne tytuły
W dzisiejszych czasach przy projektowaniu strony internetowej nie liczy się już tylko wygląd i treść. Coraz wiele osób tworząc strony projektuje je typowo pod pozycjonowanie: odpowiednie tytuły stron, przyjazne linki, mapy stron, itp. Wszystkie te techniki znacząco mogą wpłynąć na wysokość naszej strony w wyszukiwarkach internetowych.
Dzisiaj chciałbym pokazać jak w prosty i zarazem skuteczny sposób stworzyć przyjazne tytuły stron. Będzie to pierwsza część wpisów na temat pozycjonowania strony od strony serwera. Jeżeli będziemy odpowiednio korzystać z funkcji, jakie oferuje nasz serwer, możemy bardzo wpłynąć na wypozycjonowanie strony.
Podczas projektowania strony internetowej, zazwyczaj można spotkać dwa rodzaje budowania strony:
- za pomocą pliku
index.php, który wczytuje w konkretnym miejscu plik z zawartością danej podstrony, - za pomocą plików z podstronami, w których wczytywany jest nagłówek i stopka.
Stworzymy system, który będzie mógł obsługiwać obydwa powyższe metody. Na początku prześwietlmy kod HTML naszej strony internetowej. Zazwyczaj ma on taką strukturę:
- HTML
- HEAD
- TITLE
- META, itp
- BODY
- zawartość strony
- HEAD
Jeśli wczytujemy zawartość podstrony w <body> zazwyczaj robimy to w taki, lub podobny sposób:
if(isset($_GET['page']))
include($_GET['page'].'.php');
else
include('a.php');
Oczywiście powyższy przykład jest tylko poglądowy i nie radzę go używać ze względu na bezpieczeństwo. Ale wracając do tematu: sposób ten jest bardzo powszechnie używany i jest bardzo prosty w implementacji. Jednak jeśli chcemy wpłynąć na tytuł strony, to możemy się natknąć na problem. Zauważmy, że tytuł jest ustalany praktycznie na samym początku strony, natomiast podstrona w dalszej części. Nie możemy więc wyświetlić zmiennej pobranej z pliku. Wiec jak to obejść?
Możemy skorzystać z buforowania strony internetowej. Polega ona na wczytaniu całej strony do pamięci i na samym końcu wyświetleniu jej. W dobie szybkich serwerów cała operacja ma znikomy wpływ na szybkość ładowania strony. Zobaczmy jak skorzystać z tej metody.
Na samym początku pliku index.php, lub pliku z nagłówkiem strony musimy dodać kod:
<?php ob_start();
W ten sposób poinformujemy serwer, że ma od tego momentu ładować stronę do pamięci, a nie wysyłać ją do użytkownika.
Gdy strona już jest wczytana, musimy usunąć ją z pamięci i wysłać użytkownikowi. W ostatniej linii głównego pliku, lub stopki strony dodajemy kod:
echo ob_get_clean(); ?>
Bardzo ważne jest, aby powyższe kody były umieszczone w pierwszej i ostatniej linii kodu!
Teraz przejdźmy do praktyczniejszej części. W miejscu, gdzie powinien pojawić się tytuł strony umieszczamy kod:
<title>Tytuł naszej strony<!--TITLE--></title>
W ten sposób skrypt będzie wiedział w którym miejscu ma umieścić tytuł strony.
Dodajmy jeszcze mechanizm zamiany tytułu. Zmodyfikujmy kod służący za wyświetlenie strony w bufora na taki:
<? $title = ((defined('TITLE')) ? ' - '.TITLE : '');$html = ob_get_clean(); echo preg_replace('#<!--TITLE-->#', $title, $html); ?>
W zależności od tego, czy jest ustalona stała zawierająca tytuł ustalamy zmienną $title. Jeśli nie – tytuł pozostaje pusty. Kolejnym krokiem jest pobranie strony z pamięci i za pomocą wyrażenia regularnego zmiana odpowiedniego fragmentu na tytuł naszej strony.
Właściwie to to jest już cały kod. Jeżeli będziemy chcieli zmienić na jakiejś podstronie tytuł strony wystarczy, że umieścimy w dowolnym miejscu kod:
<?php define('TITLE', 'Tytuł strony A'); ?>
Jak widać w bardzo prosty sposób możemy stworzyć skuteczny mechanizm pozycjonujący. Oczywiście w analogiczny sposób możemy zrobić wyświetlanie słów kluczowych, czy opisów strony.
Na samym końcu kod całego mechanizmu:
index.php
<? ob_start() ?> <html> <head> <title>Moja strona<!--TYTUL--></title> </head> <body> <? if(isset($_GET['page'])) include($_GET['page'].'.php'); else include('a.php'); ?> </body> </html> <? $title = ((defined('TITLE')) ? ' - '.TITLE : '');$html = ob_get_clean(); echo preg_replace('#<!--TYTUL-->#', $title, $html); ?>
a.php
<? define('TITLE', 'Strona A'); ?>
<h1>Strona A</h1>
Jeżeli nie podamy powyższego kodu skrypt będzie działał nadal prawidłowo – wyświetli się standardowy tytuł.

Dodaj komentarz do wpisu