Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SWL - własny SYSTEM WYMIANY LINKÓW
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Piotrwusek
Witam

Klient zażyczył pozycjonowania. Uff... Znowu długie mozolne wspinanie się na sam szczyt góry wyników w Google.
Pisanie treści, linkowanie, katalogowanie, linkowanie, linkowanie

Więc z pomocą katalogowania przyszedł mi SeoAdder. Sprawa załatwiona!

Linkowanie... Korzystanie takich systemów jak LinkMe, LinkPro wymaga posiadania punktów, co wiąże się z wyświetlaniem na swoich stronach linków osób trzecich. W końcu sam posiadam domeny z wysokim PR i dobrze prosperujące w wynikach Google i posiadające dużą oglądalność. Czemu w takim razie mojej nowej strony nie dodać do posiadanych już domen.

Wziąłem się do pracy. bummm.... a co To ?! Ręczne dodawanie do innych stron skróciło mi mój cenny czas. Trzeba to zautomatyzować!
Pierwsze co przyszło mi na myśl to google i wyszukanie darmowego systemu wymiany linków. Jednak po 15 minutach poszukiwania: "Jak nie ma czegoś w Google to nie istnieje." zrezygnowałem. Pięć godzin później cieszę się bardzo prostym własnym systemem linków.

Jak już mówiłem bardzo prosty. O to i on:
Klasa SWL
  1. class SWL{
  2. var $plik = 'swl.txt';
  3. var $keys = 0;
  4. function linki ($ile=5,$separator=' | ') {
  5. if(file_exists($this->plik)){
  6. $plik = fopen($this->plik, "r+");
  7. $tekst = fread($plik, 11);
  8. rewind($plik);
  9. if(empty($tekst) || $tekst<date("Ymd")) {
  10. $result = date("Ymd");
  11. $url = "---ADDRES URL---link.php?key=".$this->keys; // ADRES link.php
  12. $ch = curl_init();
  13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  14. curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");
  15. curl_setopt($ch, CURLOPT_URL, $url);
  16. $result .= curl_exec($ch);
  17. curl_close($ch);
  18. fputs($plik, $result);
  19. fclose($plik);
  20. }} else {
  21. echo "<center>BRAK PLIKU SWL.TXR</center>";
  22. }
  23. if(file_exists($this->plik) && filesize($this->plik)>0){
  24. $plik = fopen($this->plik, "r");
  25. $linki = fread($plik, filesize($this->plik));
  26. $linki = substr($linki, 8);
  27. $linki = explode('|', $linki);
  28. $array = array();
  29. $i=0;
  30. foreach($linki as $link){
  31. $link = explode('=', $link);
  32. $array[$i]['title'] = $link[0];
  33. $array[$i]['url'] = $link[1];
  34. ++$i;
  35. }
  36. $dane = '<div class="swl">';
  37. foreach($array as $arra){
  38. $dane .= '<a href="'.$arra['url'].'" title="'.$arra['title'].'" target="_blank" name="'.$arra['title'].'">'.$arra['title'].'</a>';
  39. $dane .= $separator;
  40. }
  41. $dane = substr($dane, 0, -strlen($separator));
  42. $dane .='</div>';
  43. return $dane;
  44. fclose($plik);
  45. }}
  46. }


link.php
  1. //łączenie baza
  2. if(isset($_GET['key']) && !empty($_GET['key'])) {
  3. $ids = mysql_query("SELECT * FROM swl_page WHERE id='".$_GET['key']."'");
  4. while ($dane = mysql_fetch_assoc($ids)) {
  5. $id = $dane['id'];
  6. }
  7. $linkpage = mysql_query("SELECT * FROM swl_linkpage WHERE id_page='".$id."'");
  8. $text='';
  9. while ($dane = mysql_fetch_assoc($linkpage)) {
  10. $link = mysql_query("SELECT * FROM swl_link WHERE id='".$dane['id_link']."'");
  11. while ($wiersz = mysql_fetch_assoc($link)) {
  12. $text .= $wiersz['title'].'='.$wiersz['url'].'|';
  13. }
  14. }
  15. $text = substr($text, 0, -1);
  16. echo $text;
  17. }


  • Sterujemy każdym linkiem ręcznie
  • Linki aktualizowane są raz dziennie
  • Posiada też wygodny Panel Admina oparty na ZF.


Jeśli komuś się spodoba chętnie udostępnię. Dzięki temu wzbogaciłem się o cenny czas.

Pozdrawiam
Helid
Dzisiaj akurat też zacząłem tworzyć swoje oprogramowanie tego typu i mam do Ciebie kilka wskazówek, mianowicie nie każde zaplecze/strona posiada MySQL -> korzystaj z samych plików. Kolejna sprawa to sposób łączenia
  1. function connectionType()
  2. {
  3. if (function_exists('curl_init'))
  4. {
  5. return 'curl';
  6. } elseif (function_exists('fsockopen')) {
  7. return 'fsockopen';
  8. } elseif (ini_get('allow_url_fopen') && function_exists('file_get_contents')) {
  9. return 'fileGetContents';
  10. } elseif (ini_get('allow_url_fopen') && function_exists('fopen')) {
  11. return 'fopen';
  12. } elseif (function_exists('socket_create')) {
  13. return 'socket';
  14. }
  15. }

Jak widzisz łatwo można dostosować to potrzeb. Nie rozumiem też po co pobierać dane wysyłając przy okazji hasło, login. Lepszym rozwiązaniem jest stworzenie API Key, które zna tylko użytkownik oraz server. Przy pobieraniu danych sprawdzasz czy API podane w parametrze jest zgodne z tym przypisanym do adres IP/Nazwy strony.
ErnestM
Hej, i jak wyglada Twoj skrypt na dzien dzisiejszy ? smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.