Avatar billede bilbo2 Nybegynder
12. januar 2003 - 10:12 Der er 10 kommentarer og
1 løsning

Random i txt fil, men hvordan?

Hej

Jeg har lavet en .txt fil der indeholder følgende:
http://myserver.dk/banner.gif::http://myserver.dk/link.html::min server dk
http://myserver.dk/banner1.gif::http://myserver.dk/link1.html::min server dk1
osv...

Altså på hver linie er der følgende typo:
link til banner fil::link som der skal bruges::description

Er der nogen der kan hjælpe mig med at lave et script der tager en vilkårlig linie fra denne txt fil og splitter den op og viser banneret?

100 point til den der kommer med en løsning

mvh
bilbo2
Avatar billede Søren Bech Morsing Praktikant
12. januar 2003 - 10:32 #1
Spiltte den er nemt:
myLink = Split("banner::link", "::", -1, 1)
myLink[0] ' banner
myLink[1] ' link

Åbne textfilen er også nemt
Avatar billede Søren Bech Morsing Praktikant
12. januar 2003 - 10:33 #2
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\banner.txt", 1)
linie =  f.Read()

men få en tilfældig linie? kan du ikke bruge en database i stedet? så kan du også tilføje statistik over hvor tit der klikkes på bannerne?
Avatar billede Søren Bech Morsing Praktikant
12. januar 2003 - 10:34 #3
ups, jeg trækker lige alt i mig igen! Kiggede ikke i toppen hvor der står PHP - måske for tidligt på dagen - beklager
Avatar billede bilbo2 Nybegynder
12. januar 2003 - 11:27 #4
Nogen andre der kan hjælpe??
Avatar billede angam Nybegynder
12. januar 2003 - 12:16 #5
Prøv denne:

$filename = 'bannerliste.txt';

$fp=fopen($filename,'r');
$buffer=fread($fp, filesize($filename));
fclose($fp);

$banners=explode("\n", $buffer);
$bannum=rand(0, sizeof($banners)-2);

$banner=$banners[$bannum];
$data=explode('::', $banner);

$banner_img = $data[0];
$banner_url = $data[1];
$banner_alt = $data[2];

echo("<a href='$banner_url'><img src=$banner_img alt='$banner_alt' border=0></a>");
Avatar billede bilbo2 Nybegynder
12. januar 2003 - 19:44 #6
Fint nok, men den tager kun de to første i en fil, kan den ikke laves sådan at den tager dem alle sammen??

mvh
bilbo2
Avatar billede angam Nybegynder
12. januar 2003 - 20:21 #7
Routinen håndterer det antal linier du har i din bannerlist.txt - jeg har selv testet med fire banners i listen uden problemer.
Med mindre du bruger en gammel php-version (vistnok 3.0.7 eller tidligere), skulle der ingen problemer være.
Avatar billede bilbo2 Nybegynder
13. januar 2003 - 11:14 #8
Hej angam,

Ja den virker og jeg har 3 banners installeret. Jeg kører PHP 4.2.2 men viser stadigvæk kun de 2. Kig her: http://www.gameforums.org/banners.php
og config filen er her: http://www.gameforums.org/bannerlist.txt

Kan du forklare hvorfor det ikke virker?

mvh
bilbo2
Avatar billede angam Nybegynder
13. januar 2003 - 11:38 #9
hmm - måske fordi jeg har lavet en typo: der skal stå -2 og ikke -1 i linien
$bannum=rand(0, sizeof($banners)-2);

(Så vælger den tilfældigt mellem alle undtagen sidste linie ...)
Ret denne, og så skulle det virke.
Avatar billede angam Nybegynder
13. januar 2003 - 11:41 #10
Flot - jeg prøver igen: Der skal stå -1 og ikke -2 i linen (rasguu!)

Den endelige linie skal se sådan ud:
$bannum=rand(0, sizeof($banners)-1);

Håber du kan følge mig, selvom jeg vist gør alt for at forvirre lige nu :-)
Avatar billede bilbo2 Nybegynder
13. januar 2003 - 12:01 #11
Virker, sådan de 100 points er dine, tak for hjælpen :)

mvh
bilbo2
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester