Z zamiłowania tworzę strony internetowe. Moje teksty mają na celu opisanie
niektórych fragmentów internetu, którego ta strona jest częścią.
Konserwatywny, pewny siebie, niekonwencjonalny - to wady czy zalety? Sprawdź!
maciej łebkowski
Wraz z rozszerzaniem się internetu i powstawaniem nowych elementów tegoż, coraz częściej możemy trafić na sytuacje, w których nagłówek HTTP_REFERRER nie będzie niósł ze sobą żadnych informacji. Oto sposób, jak złagodzić brak tych danych w przypadku czytników RSS.
Większość osób, które interesują się webmasteringiem i prowadzą stronę domową przegląda swoje logi. Zastanówmy się nad sposobem, żeby w różnych środowiskach, przedstawiać różne linki, tak aby nawet bez informacji o stronie referującej, można było się domyślić, skąd internauta dostał dany adres.
Ja skupię się na kanałach RSS. Docelowo chcę osiągnąć treść, w której do linków będzie dodana informacja o jego pochodzeniu, np. przez dodanie zmiennej 'z_rss'. Do dzieła.
Bierzemy tekst i wyszukujemy w nim wszystkich wystąpień: href=(...). Teraz, każdy ze znalezionych linków parsujemy i sprawdzamy, czy zawiera już jakieś zmienne dla skryptu PHP czy nie, a potem zależnie od wyniku, dodajemy własne informacje. Funkcja wyszukująca to jedna linikja uzywając preg_replace_callback.
$txt = preg_replace_callback(',href="(http://.*)",','zamien_linka', TXT );
Teraz oczywiście definiujemy funkcję 'zamien_linka':
function zamien_linka( $link ){
$link = $link[1];
$_u = parse_url( $link );
if( empty( $_u['path'] ) ) $link.= '/';
$res = $link . ( strpos( $link, '?' ) ? '&' : '?' )
. FROM_RSS .'='.NASZ_SAJT;
return sprintf( 'href="%s"', $res );
}
(oczywiście stałe, pisane wielkimi literami, zostały zdefiniowane wcześniej). Przez tak skonstruowany skrypt przepuszczamy naszą treść, która docelowo idzie do kanału RSS. Na przykładzie widzimy, że każdy link w tekście został zamieniony - oprócz linków wewnętrznych, ale tymi może zajmę się później, albo dopisze jakiś komentarz, jak będę miał więcej czasu.
Publikujemy tekst na blogu.
Efekt? Jeśli ktoś korzystający z czytnika RSS kliknie na linka, to autor strony, na którą wejdzie internauta w logu zobaczy informację, że ktoś wszedł do niego po przeczytaniu wpisu ze strony Kowalskiego w czytniku RSS. Proste? Proste. Przydatne? Może trochę mniej, ale nie miałem czasu się zastanawiać nad tym, chciałem sobie coś zakodować.
Zapraszam do komentowania.