Kuinkakohan saisin laskettua PHP:llä tekstitietokantojen rivien määrän, ja sitten tulostettua tuo kyseinen tieto ymmärrettävään muotoon?
Selaimen pitäisi esittää asia seuraavanlaisesti:
Sanomalehdet (2)
Sarjakuvat (1)
Aikakausilehdet (0)
Tekstitietokantaan tiedot ovat tallennettu muotoon:
sanomalehdet/teksti.txt
001|Helsingin Sanomat|3€ 002|Aamulehti|2,5€
sarjakuvat/teksti.txt
001|Aku Ankka|2€
aikakausilehdet/teksti.txt
loop ( tietokannat ) echo ucfirst ( dirname( tietokanta ) ) + ( count( file ( tietokanta ) ) ); endloop;
Tuon avulla pitäisi onnistua, en kyllä tuota tsuriqan tekstistä tajunnut itse mitään =D
<?php $sanomalehdet = file("sanomalehdet/teksti.txt"); $kappalemaara = count($sanomalehdet); echo $kappalemaara; ?>
Osaakos joku etevämpi sanoa, onko yllä olevassa toteutuksessa joitakin sudenkuoppia?
EDIT. punppis kerkesi tavallaan vastaamaan kysymykseeni.
Koodi on siksi yksinkertainen, että siihen tuskin mahtuu kovin yllättäviä sudenkuoppia. Tietysti jos tiedostoa ei ole olemassa, koodi ei myöskään toimi, mutta tämän varmasti huomasit itsekin.
Esitin semipseudon, jolla saadaan aikaan toivottu tuloste. Osa sanoista on ihan oikeita PHP avainsanoja (manuaali ftw), osa tulee korvata oikeilla avainsanoilla. Ajattelin seuraavasti: loop = foreach, tietokannat = taulukko tekstitietokannoista - loput ovatkin oikeita avainsanoja.
tsuriga kirjoitti:
Esitin semipseudon, jolla saadaan aikaan toivottu tuloste. Osa sanoista on ihan oikeita PHP avainsanoja (manuaali ftw), osa tulee korvata oikeilla avainsanoilla. Ajattelin seuraavasti: loop = foreach, tietokannat = taulukko tekstitietokannoista - loput ovatkin oikeita avainsanoja.
Liekköhän ensimmäinen viesti aukeni kovinkaan monelle ilman tarkennusta. Jäin ihmettelemään, että onko php:ssä muka joku loop-rakenne. Ilman viestiäsi olisin mennyt seuraavaksi katsomaan manuaalista.
Tosin olisihan se siitäkin pitänyt huomata, että +operaattori ei php:ssä toimi noin ;-) Kiva virhelähde, jota joskus metsästin ihan pienen tovin vain. Tosin silloin oli string + string, joka tulosti tyhjää.
<?php $t = 1 + 'test'; // tai toisessa järjestyksessä echo $t; // tulostaa pelkän ykkösen joka tapauksessa ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.