Skocz do zawartości

[Szukam] Darmowy skrypt wymiany linkow


netelektryk

Rekomendowane odpowiedzi

[...]

Znacie może coś bardziej optymalnego do losowania 5 liczb niż rand() i mt_rand()?[...]

tak w ramach wolnych paru minut zrobiłem test na webd.pl i oto wynik:

10000 liczb przez RAND(109,15000): 0.005308 sekund
10000 liczb przez MT_RAND(109,15000): 0.005426 sekund

Więc nie możliwe, że losowaniem 5 liczb odczuwasz wolniejsze działanie skryptu.

Niżej czasy wykonywania poszczególnych części Twojego kodu:

--------------------
$plik = file("test.txt");
--------------------: 0.0013 sekund
$min = 2;
$max = count($plik);
$limit = 5;
--------------------: 6.00000000001E-6 sekund
for($i=0;$i<$limit;$i++){
$rand = mt_rand($min,$max);
$swl[$i] = $plik[$rand];
}
--------------------: 1.4E-5 sekund

Mój plik test.txt zajmuje 230KB (1880 linii)

Odnośnik do komentarza
Udostępnij na innych stronach

Kear, może akurat w danej chwili mulil mi serwer:)

Swoją drogą podobno mt_rand ma być szybsze niż rand :P A z Twojego testu wyszło na odwrót :angry:

Na razie jestem na etapie prostego skryptu wsadowego (taki jak ten tyle że z tworzeniem pliku tekstowego z baza linków dla każdej domeny (X domen kieruje na jeden serwis). Teraz tylko system do rozdawania linków(na razie najrpstrzy czyli wszystkie linki z systemu) i raz na 24h lub z serwera glownego będzie resetowany skrypt tak aby pobierał linki ;)

System linków rotacyjnych już zrozumiałem od strony technicznej tak mniej więcej ;) A zastanawiam się na jakiej zasadzie działa SWL stałych. Z uwagi na to że mając stronę 10k podstron i to załadowac do pliku tekstowego i wyszukiwać w nim odpowiednich linków na odpowiednia podstrone to by była masakra ;) Tworzenie 10k plików tekstowych to tez raczej kiepskie rozwiązanie ;) Będę musiał przyjrzeć się zasadzie działania dostepnych SWL między innymi linkujpro z uwagi na to że jednak te stare systemy maja bardziej przejrzysty kod ;)

Michał Kryński
Zapraszam na moje forum akwarystyczne  ;-) 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
  • 2 tygodnie później...

Mich@ł za Twoim natchnieniem:

plik np. linki.php który includujemy na stronach przez:

<div><?php include "linki.php"; ?></div>

<?php

 $charset='utf-8';  // charset strony wyświetlającej linki. Możliwe : utf-8 ,windows-1250 lub iso-8859-2
 $url = 'domena.pl'; //podać adres, gdzie leży plik links.txt (bez http )
 $menu = '/links.txt';	// podac ścieżkę do pliku links.txt - plik ma być kodowany windows 1250
					 // w moim przypadku cała ścieżka brzmi: moja.domena.pl/links.txt
 // aby całośc działała serwer musi mieć otwarte fsockopen
 $linkscount = 10; // ilość wyświetlanych linków
 $separator = ' | '; // separator linków 

 ob_start();

 function RotacyjnyplCharset($string, $type = ISO88592_TO_UTF8) {

$win2utf = array(
  "\xB9" => "\xC4\x85", "\xA5" => "\xC4\x84",
  "\xE6" => "\xC4\x87", "\xC6" => "\xC4\x86",
  "\xEA" => "\xC4\x99", "\xCA" => "\xC4\x98",
  "\xB3" => "\xC5\x82", "\xA3" => "\xC5\x81",
  "\xF3" => "\xC3\xB3", "\xD3" => "\xC3\x93",
  "\x9C" => "\xC5\x9B", "\x8C" => "\xC5\x9A",
  "\xBF" => "\xC5\xBC", "\x8F" => "\xC5\xBB",
  "\x9F" => "\xC5\xBA", "\xAF" => "\xC5\xB9",
  "\xF1" => "\xC5\x84", "\xD1" => "\xC5\x83"
);


if ($type == 'WIN1250_TO_UTF8')
  $string= strtr($string, $win2utf);
if ($type == 'WIN1250_TO_ISO88592')
  $string= strtr($string, "\xa5\x8c\x8f\xb9\x9c\x9f",
	"\xa1\xa6\xac\xb1\xb6\xbc");


 return $string;
 }


$data = array();
$parameters='';
$fp = fsockopen("$url", 80, $errno, $errstr, 10);
if (!$fp) 
{
  echo "$errstr ($errno)<br />\n";
} else 
{

  $file='';
   $header = 'GET ' . $menu . ' HTTP/1.0' . "\r\n" .
  'Host: ' . $url . "\r\n" .
  'Content-Type: application/x-www-form-urlencoded' . "\r\n" .
  'Content-Length: ' . strlen($parameters) . "\r\n" .
  'Connection: close' . "\r\n\r\n";
  @fputs($fp, $header . $parameters);
   while (!feof($fp)) 
  {
	$line = fgets($fp, 1024);
	$data[]= $line;
	if (eregi('Content-Type:',$line)) $data=array();
  }
  fclose($fp);
}

$count = count($data);

if (trim($data[$count])=='') $count = $count-1;
ob_end_clean();

$anchors = array();
if ($count>0)
{
 for ($i=1; $i<=$linkscount; $i++)
 {
$link = rand(0,$count-1);

while (in_array($data[$link],$anchors))
{
  $link = rand(0,$count-1);
}
$anchors[] = $data[$link];
$ln = explode('|',$data[$link]);
$anchor = trim($ln[0]);
$link = trim($ln[1]);

echo '<a href="'.$link.'" target="_blank">'.RotacyjnyplCharset($anchor, 'WIN1250_TO_'.strtoupper(str_replace('-','',$charset))).'</a>';

if ($i!=$linkscount && $anchor!='') echo $separator;
 }
}
?>

do tego dodajemy plik links.txt w formacie: anchor, pipe (|) link (w lokalizacji zgodnie z opisem na górze: $url, $menu):

dupcia | https://dupcia.pl
pupcia | https://pupcia.pl

Jak to działa. Na jednym serwerze (wspólnym dla wszystkich stron) umieszczamy plik links.txt . Na pozostałych (stronach zapleczowych) wgrywamy i includujemy linki.php (<div><?php include "linki.php"; ?></div>) w którym jest wskazanie na ten plik links.txt (w zmiennych $url i $menu) i wszystko gra - tzn. wszystkie pobierają plik z tej jednej lokalizacji. Dodanie w tym pliku dodatkowych wpisów powoduje rotowanie tego linku na wszystkich podpiętych stronach.

Licencja GNU/GPL bez supportu :)

Dodatkowo Zabezpieczony jest przed wyświetlaniem dwóch identycznych linków (różniących się anchorami) na stronie

logosc.png

Nowa odsłona systemu!!! --- Radek Kubera na G+.--- Mój blog: radek.kubera.org

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności