Tänään ei tunnu olevan mikään mun paras päivä joten joudun kysymään apua huvin yksinkertaiseen kysymykseen:
Yritän tehdä PHP:llä nettisivuille kirjautumis hommeila joka tarkastaa löytyykö käyttäjän tekstikenttään kirjoittama salasana tiedostosta. Minulla on käyttäjän kirjoittama salasana muuttujassa $tunnus ja tiedosto tunnukset.txt jonne on kirjoitettu salasanat, jokainen omalle rivilleen. Ongelmaksi muodostuu se, että mikä komentorakenne kävisi läpi kaikki tiedoston rivit ja vertaisi jokaista riviä salasanaan. Jos rivi ja salasana täsmäävät niin se suorittaisi tietyt skriptit, jos ne eivät täsmää niin tarkistetaan seuraava rivi. Mikäli mikään riveistä ei täsmää niin tulostetaan viesti.
Loppuosa kyllä onnistuu, mutta en vain ole löytänyt/keksinyt mikä suorittaisi nuo salasanan ja tiedoston vertailu hommat...
Tiedoston rivien läpikäyntiin soveltuu for-silmukka. Tämä koodi etsii tiedostosta salasanaa "abc". Tämä toimii, jos tiedoston rivillä on pelkkä salasana eikä mitään muuta tietoa.
Jos tiedosto on todella suuri / voi mennä suureksi nopeuden kannalta on parempi käyttää foreach ratkeisua, joka on aikalailla tasan puolet nopeampi. Eron tosin näkee varmaan tyyliin 5 miljoonan rivin tapauksissa.. Mutta, kuitenkin.
Dramo kirjoitti:
nopeuden kannalta on parempi käyttää foreach ratkeisua, joka on aikalailla tasan puolet nopeampi.
[citation needed]
Blaze kirjoitti:
Dramo kirjoitti:
nopeuden kannalta on parempi käyttää foreach ratkeisua, joka on aikalailla tasan puolet nopeampi.
[citation needed]
Ainakin Laaksosen toteutukseen suhteutettuna uskon foreachin vievät voiton selvin numeroin; forin tarkistuslause suoritetaan jokaisen silmukan pyörähdyksen aikana, eli count($rivit) hidastaa läpikäyntiä.
Kiitoksia vinkeistä!!! Noiden avulla sainkin jo sen toimimaan!!!
Aihe on jo aika vanha, joten et voi enää vastata siihen.