Info: June 6, 2008 Posted by: admin 2 comments

System losuje linki z tabeli; można w nim ustawić czas rotacji linków (w sekundach). Domyślnie wyświetlają się zestawy po 5 linków (przed dołączeniem skryptu dobrze jest dodać te minimum 5 linków do tabeli. W tej wersji system sprawdza się ze stronami kodowanymi w utf-8, ale nie widzę przeciwskazań, żeby sobie napisać wersję na iso. Nie mam prawie stron kodowanych w iso, więc mi się tego zmieniać nie chce :)
Najpierw tworzymy tabelę np.

CREATE TABLE `linki` (
`adres` varchar(255) collate utf8_bin NOT NULL,
`anchor` varchar(255) collate utf8_bin NOT NULL,
`title` varchar(255) collate utf8_bin NOT NULL,
`id` int(4) NOT NULL auto_increment,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Jestem leniwy, więc linki dodawać trzeba np. przez phpmyadmina :)
Następnie tworzymy plik tekstowy np. linkilinkilinki. i dajemy mu prawa do zapisu i odczytu.
Teraz właściwy skrypt:

//czas
$minuta = 60;
$dzien = 86400;
$tydzien = 604800;
$miesiac = 18144000;
//co ile maja sie rotowac linki
$czas = $minuta;
//takie tam pierdoly
$calosc = "";
//baza
$user = "root";
$pass = "haslo";
$host = "host";
$name = "linki";
$con= @mysql_connect($host,$user,$pass)	or die ("nie moge polaczyc sie z baza mysql");
$db = @mysql_select_db($name,$con)	or die ("nie moge wybrac bazy danych");
mysql_query ("SET NAMES utf8");
//sprawdzanie istnienia pliku
$plik = "linkilinkilinki.";
if (file_exists($plik)) {
//starosc pliku
$dplik = filectime($plik);
$teraz = time();
if ($teraz <= $dplik + $czas) {
$linki = file($plik);
$linki1 = explode(",|", $linki[0]);
$linki2 = explode(”,|”, $linki[1]);
$linki3 = explode(”,|”, $linki[2]);
$linki4 = explode(”,|”, $linki[3]);
$linki5 = explode(”,|”, $linki[4]);
$link1 = “<a title=”\"” href=”\”>” . $linki1[1] . “</a> “;
$link2 = “<a title=”\"” href=”\”>” . $linki2[1] . “</a> “;
$link3 = “<a title=”\"” href=”\”>” . $linki3[1] . “</a> “;
$link4 = “<a title=”\"” href=”\”>” . $linki4[1] . “</a> “;
$link5 = “<a title=”\"” href=”\”>” . $linki5[1] . “</a> “;
echo $link1 . $link2. $link3. $link4. $link5;} else {
$wybierzid = “SELECT `id` FROM `linki`;”;
$wybierzid = mysql_query($wybierzid);
$i=1;
while ($juzmamid = mysql_fetch_row($wybierzid)) {
$tablica[$i] = $juzmamid[0];
$i=$i+1;
}
$przytnijid = array_rand($tablica, 5);
foreach ($przytnijid as $id) {
$zapytanie = “SELECT `adres`, `anchor`, `title` from linki  where `id` = $id;”;
$robimy = mysql_query ($zapytanie);
if (!($robimy)) print mysql_error();
while($link=mysql_fetch_row ($robimy)){
$links = implode(”,| “, $link).”\n”;
$calosc.=$links;
$link = “<a title=”\"” href=”\”>” . $link[1] . “</a> “;
echo $link;
}
}
file_put_contents ($plik, $calosc);
}
} else {
echo “Brak pliku z linkami”;
}

Piękne to to nie jest, można napisać ładniej, wydajniej i ciaśniej niż dupa szesnastolatki… wspominałem już o tym, że jestem leniwy?

Skrypt jest na licencji gpl, ale jak zobacze go u darkona na forum, to nogi z dupy powyrywam.

Tagi: , ,

Podobne