Avatar billede Slettet bruger
05. december 1999 - 10:25 Der er 10 kommentarer og
1 løsning

Hjælp til split

Hej!

Er her nogle der kan give et eksempel på en code...

Eksempel:

Der er en fil der hedder users.txt
Den er CHMODet til 777 (eller lign.)

Scriptet skal kunne gå en i den database (users.txt) og finde en alder ud fra et navn.

F.eks hvis du skriver script.php?navn=benny så skal scriptet lede efter navnet benny i sådan en database:

hans|54
morten|16
benny|22
egon|45

Derefter printer den alderen ud. (Hos benny 22 år).

Håber i forstår og kan hjælpe!
Avatar billede morw22 Nybegynder
05. december 1999 - 13:26 #1
Hvorfor bruger du ikke en database i stedet for en tekstfil?
Avatar billede mbn.dk Nybegynder
05. december 1999 - 14:46 #2
function doh($find) {
$fp = fopen("users.txt", r)
      or die("God dammit");
while($str = trim(fgets($fp, 1024))) {
list($navn, $alder) = split("\|", $str)
if ($navn == $find) $return = $alder;
}
if ($return) return $return;
}

print "Benny er ".doh("benny")." år gammel";
Avatar billede cyberesben Nybegynder
05. december 1999 - 16:18 #3
hmm, mbn, din kodning er ret smart, jeg tror jeg ville have brugt dobbelt så mange linier hvis jeg skulle have lavet det samme... *G*
Avatar billede Slettet bruger
05. december 1999 - 16:31 #4
Mange tak!
Avatar billede Slettet bruger
05. december 1999 - 16:41 #5
Jeg skal egentlig bruge scriptet til en counter.

Så hvis jeg besøger siden med dit indhold, skal den automatisk plusse alder med 1.
- Altså ud fra navnet!

Eksempel:

Jeg besøger users.txt
Der står der en masse navne samt dette:

benny|22

Derefter besøger jeg script.php?navn=benny, og så tæller scriptet fra 22 op til 23.

Når jeg så besøger users.txt står der (samt en masse andre navne):

benny|23

Håber du forstår!

Avatar billede mbn.dk Nybegynder
05. december 1999 - 21:30 #6
function doh($theDude) {
$fp = fopen("users.txt", r) or die("God dammit");
while($str = trim(fgets($fp, 1024))) {
  list($navn, $count) = split("\|", $str)
  if ($navn == $theDude) $count++;
  $return .= "$navn|$count\n";
}
fclose($fp);

$fp = fopen("users.txt", w) or die("Strange... jeg mås ikke skrive til filen.");
if (fputs($fp, $return)) return true;
}

Kører du funktionen som doh("Benny")
skulle Benne gerne stige med et.
...men jeg har ikke testet det.
Avatar billede Slettet bruger
06. december 1999 - 13:13 #7
Tusind tak!
Avatar billede Slettet bruger
06. december 1999 - 13:17 #8
morw22>Hvorfor bruger du ikke en database i stedet for en tekstfil?

Fordi det er nemmere med en tekstfil
Avatar billede mbn.dk Nybegynder
06. december 1999 - 13:37 #9
Nej, det er det ikke. En MySQL database er klart at foretrække.
Avatar billede Slettet bruger
06. december 1999 - 14:01 #10
Hvad gør jeg galt?

Kig på:
http://www.cht.dk/test/counter.php3

- og:
http://www.cht.dk/test/counter.phps

Prøv evt. med counter.php3?id=ko
Avatar billede mbn.dk Nybegynder
06. december 1999 - 14:03 #11
Du bruger funktionen doh() før end den er defineret.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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