Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Скриптик
цитата
22/03/10 в 15:33
 Sergeyka
Нужен небольшой скриптец, который бы на морде раз в 12 часов ротировал тумбы с урлами из списка.

Т.е. задаешь списком <a href="url1"><img src="img1" alt="" /></a><a href="url2"><img src="img2" alt="" /></a><a href="url3"><img src="img3" alt="" /></a>

скрипт из списка рендомно без повторений раз в 12 часов?

Сколько
цитата
22/03/10 в 17:01
 ibiz
вот скриптик, нужно два файла в urls.txt - исходные урлы, в randurls.txt пишется готовое
Код:

<?
$dispay_urls = file("randurls.txt");
if(trim($dispay_urls[0])+43200 < time()){
   $urls = file(dirname(__FILE__)."/urls.txt");
   shuffle($urls);
   $fp = fopen(dirname(__FILE__)."/randurls.txt","w+");
   fwrite($fp, time()."\n");
   foreach ($urls as $url)
   fwrite($fp, trim($url)."\n");
   fclose($fp);
   $dispay_urls = $urls;
}else
   array_shift($dispay_urls);

foreach ($dispay_urls as $url) {
    echo "$url";
}
exit;
?>
цитата
27/03/10 в 07:52
 densa
а можно его модернизировать что бы он не все тумбы выдавал, а только случайные 8шт скажем?
цитата
27/03/10 в 09:47
 ibiz
да легко, добавить пару строчек
цитата
29/03/10 в 21:51
 KILOMETER
Можно сделать так:
в файле url_list.txt храним урлы
Код:

url_list.txt

$tumb[1]='<a href="url1"><img src="img1" alt="" /></a>';
$tumb[2]='<a href="url2"><img src="img2" alt="" /></a>';
$tumb[3]='<a href="url3"><img src="img3" alt="" /></a>';
$tumb[4]='<a href="url4"><img src="img4" alt="" /></a>';
$tumb[5]='<a href="url5"><img src="img5" alt="" /></a>';
$tumb[6]='<a href="url6"><img src="img6" alt="" /></a>';
$tumb[7]='<a href="url7"><img src="img7" alt="" /></a>';
$tumb[8]='<a href="url8"><img src="img8" alt="" /></a>';
$tumb[9]='<a href="url9"><img src="img9" alt="" /></a>';
$tumb[10]='<a href="url10"><img src="img10" alt="" /></a>';

и сам скриптик, выводит 5 случайных:

<?php
include"url_list.txt";
$kol_url=count($tumb);
for ($i=0; $i<5; $i++) {
$gal=rand(1,$kol_url);
echo"$tumb[$gal]";
    for ($j=$gal; $j<$kol_url; $j++) {
    $tumb[$j]=$tumb[$j+1];
    }
$kol_url--;
}
?>
цитата
30/03/10 в 09:14
 ibiz
KILOMETER писал:
Можно сделать так:
в файле url_list.txt храним урлы


что-то мне подсказывает, что он будет работать не совсем как надо icon_smile.gif
цитата
31/03/10 в 14:17
 KILOMETER
ibiz писал:
что-то мне подсказывает, что он будет работать не совсем как надо icon_smile.gif


Тогда так:
Код:

<?php
$tumb[1]='<a href="url1"><img src="img1" alt="" /></a>';
$tumb[2]='<a href="url2"><img src="img2" alt="" /></a>';
$tumb[3]='<a href="url3"><img src="img3" alt="" /></a>';
$tumb[4]='<a href="url4"><img src="img4" alt="" /></a>';
$tumb[5]='<a href="url5"><img src="img5" alt="" /></a>';
$tumb[6]='<a href="url6"><img src="img6" alt="" /></a>';
$tumb[7]='<a href="url7"><img src="img7" alt="" /></a>';
$tumb[8]='<a href="url8"><img src="img8" alt="" /></a>';
$tumb[9]='<a href="url9"><img src="img9" alt="" /></a>';
$tumb[10]='<a href="url10"><img src="img10" alt="" /></a>';
$kol_url=count($tumb);
for ($i=0; $i<5; $i++) {
$gal=rand(1,$kol_url);
echo $tumb[$gal];
    for ($j=$gal; $j<$kol_url; $j++) {
    $tumb[$j]=$tumb[$j+1];
    }
$kol_url--;
}
?>
цитата
31/03/10 в 15:13
 samedi
код ниже

Последний раз редактировалось: samedi (31/03/10 в 23:18), всего редактировалось 2 раз(а)
цитата
31/03/10 в 18:23
 ibiz
KILOMETER писал:
Тогда так:


ну что-то все равно не так, как требуется в первом посте icon_smile.gif
цитата
31/03/10 в 22:53
 KILOMETER
ibiz писал:
ну что-то все равно не так, как требуется в первом посте icon_smile.gif


Тогда ВОТ как: icon_rolleyes.gif
Код:

<?
$fp2=fopen(dirname(__FILE__)."/urls.txt","r");
$urls = file("urls.txt");
$dat=stat("randurls.txt");
if($dat[10]+43200 < time()){
$fp=fopen(dirname(__FILE__)."/randurls.txt","w+");
$kol_url=count($urls);
for ($i=0; $i<5; $i++)
   {
   $gal=rand(0,$kol_url-1);
   //echo"$urls[$gal]";
   fwrite($fp, trim($urls[$gal])."\n");
   for ($j=$gal; $j<$kol_url; $j++)
    {
    $urls[$j]=$urls[$j+1];
    }
   $kol_url--;
   }
fclose($fp);
}
else{};
$rand_urls = file("randurls.txt");
foreach ($rand_urls as $url)
echo"$url";
?>


...и без повторов, и с ротацией один раз за 12 часов...
цитата
31/03/10 в 23:17
 samedi
Код:
<?php

define("SOURCE", "data.txt");
define("OUTPUT", "done.html");
define("COUNT",  3);

if (filemtime(OUTPUT) > time() - 60*60*12) { // 12 hours delay
   $output = file_get_contents(OUTPUT);
} else {
   $data = file(SOURCE);
   shuffle($data);

   $urls = array_slice($data, 0, COUNT);
   $output = implode("\n", $urls);
   file_put_contents(OUTPUT, $output);
}

echo $output;


Последний раз редактировалось: samedi (11/04/10 в 21:11), всего редактировалось 1 раз
цитата
11/04/10 в 14:41
 densa
а как сделать так что бы он только 8 тумб генерил?
цитата
11/04/10 в 21:12
 samedi
densa писал:
а как сделать так что бы он только 8 тумб генерил?

Изменить значение COUNT.

Код:
define("COUNT",  8);


Эта страница в полной версии