Szukam skryptu do skracania linków - NoVi - 01-01-2017 13:09
Witajcie, szukam dobrego i prostego skryptu do skracania linków.
Chcę sobie zrobić taki serwis do własnego użytku
Każdy wie, jak Facebook blokuje wszystkie linki.
RE: Szukam skryptu do skracania linków - NeedDolar - 01-01-2017 15:47
Dołączam do pytania. Ktoś pomoże?
RE: Szukam skryptu do skracania linków - KombinatorGumiok - 01-01-2017 17:41
Jeśli masz jakieś ~20minut czasu oraz własną domenę i hosting, to polecam zainstalować wordpressa i tą wtyczkę
Używam jej od kilku miesięcy i jestem zadowolony.
RE: Szukam skryptu do skracania linków - Dante_/ - 02-01-2017 01:54
Zawsze możesz zrobić przekierowanie na blogspot'cie albo na weebly, za pomocą edycji kodu html. Darmowy sposób, który pozwala zaoszczędzić trochę pieniędzy zamiast wydawać na domeny. Z mojego doświadczenia taka domena stoi przez jakiś miesiąc przy spamie około 500-600 wiadomości/komentarzy na dzień.
Link do kodu - http://pastebin.com/WEjzYmHv
W 9 linijce zmieniasz 'xxxxxxxxxxxxx' na link do domeny.
RE: Szukam skryptu do skracania linków - kubagrzybowski - 02-01-2017 20:47
Kiedyś znalazłem coś takiego [PHP/MYSQL]
Cytat:Za pomocą 5 znaków możesz zapisać ponad 60 mln różnych adresów WWW! Na początek trochę teorii. Adres będziemy kodować do maksymalnie 5 znaków. Da to możliwość zapamiętania ponad 60 mln adresów. Wystarczająco dużo, prawda? Do kodowania użyję 36 symboli. Będą to liczby i wszystkie znaki alfabetu - łącznie jest ich 36. Zobacz ile kombinacji znaków można uzyskać używając od 1 do 6 znaków dla alfabetu złożonego z 36 symboli, jak nasz:
1 = 36
2 = 1 296
3 = 46 656
4 = 1 679 616
5 = 60 466 176
6 = 2 176 782 336
Każdy adres zostanie zapisany w tablicy o konstrukcji:
Kod:
CREATE TABLE adresy (
id int(10) unsigned NOT NULL auto_increment,
adres varchar(255) NOT NULL default '',
PRIMARY KEY (id)
)
Gdzie identyfikatorem będzie kolejna liczba, a w polu adres wstawię adres docelowy. Wykonajmy teraz konwersję adresu docelowego na skrót:
Kod:
<?
function na36($liczba) {
$znaki = array("0","1","2","3","4","5","6","7","8","9","a","b",
"c","d","e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z");
while($liczba>0) {
$resztamod = $liczba % 36;
$liczba = ($liczba-$resztamod)/36;
$wynik = $znaki[$resztamod] . $wynik;
}
return $wynik;
}
// ten adres będziemy skracać
$adres = "http://jakisserwer.pl/moj/bardzo/dlugi/adres.html?z=parametrem";
if (mysql_connect($sql_serwer, $sql_login, $sql_haslo)
and mysql_select_db($sql_baza)) {
$wynik = mysql_query("INSERT INTO adresy SET adres='$adres'");
$id = mysql_insert_id(); // pobieram numer wstawionego właśnie rekordu
$id = na36($id); // i zmieniam na krótki w alfabecie 36-znakowym
mysql_close();
}
echo "Krótki adres strony to:<br />";
echo "http://serwis.pl/?$id";
?>
Wstawiam adres, pobieram numer id rekordu i zmieniam numer na liczbę w zapisie 36-znakowym. Ten numer stanowi skrót i można go dodać do adresu rozszyfrowującego skracanie. Otrzymuję w wyniku np. adres:
http://serwis.pl/?d3
Skrót strony to d3. Teraz, gdy ktokolwiek wpisze adres u nas w serwisie, trzeba przekierować użytkownika wpisującego adres na stronę docelową. W tym celu muszę zamienić liczbę d3 na postać dziesiętną (471) i pobrać rekord o tym numerze oraz przekierować użytkownika pod umieszczony w tym rekordzie adres:
Kod:
<?
function z36($liczba) {
$znaki = array("0"=>0, "1"=>1, "2"=>2, "3"=>3, "4"=>4, "5"=>5,
"6"=>6, "7"=>7, "8"=>8, "9"=>9, "a"=>10,"b"=>11,
"c"=>12,"d"=>13,"e"=>14,"f"=>15,"g"=>16,"h"=>17,
"i"=>18,"j"=>19,"k"=>20,"l"=>21,"m"=>22,"n"=>23,
"o"=>24,"p"=>25,"q"=>26,"r"=>27,"s"=>28,"t"=>29,
"u"=>30,"v"=>31,"w"=>32,"x"=>33,"y"=>34,"z"=>35);
for ($i=strlen($liczba);$i>=0;$i--) $odtylu .= $liczba[$i];
for ($i=0;$i<strlen($odtylu);$i++) {
$m=pow(36, $i);
$wynik += $znaki["$odtylu[$i]"] * $m;
}
return $wynik;
}
// numer, jako parametr za znakiem ? np. http://serwer.pl/?d3
$id = $_SERVER['QUERY_STRING'];
$id = z36($id); // zmieniam na liczbę dziesiętną
if (mysql_connect($sql_serwer, $sql_login, $sql_haslo)
and mysql_select_db($sql_baza)) {
$wynik = mysql_query("SELECT * FROM adresy WHERE id='$id'");
if ($wynik) {
$dane = mysql_fetch_assoc($wynik);
$adres = $dane['adres'];
header("Location: $adres");
exit;
} else {
echo "Błędnie wpisany parametr...";
}
mysql_close();
}
?>
Operacja odwrotna. Pobieram rekord na podstawie jego numeru uzyskanego z parametru strony. Znowu muszę wykonać konwersję z podstawy 36-znakowej na system dziesiętny. Przekierowanie wykonuję w funkcji header(), stąd ważne jest aby wcześniej na stronie nie było żadnego innego znaku. To ma być pierwszy element strony na samej górze, ponieważ wysyła nagłówki z przekierowaniem do przeglądarki.
|