taulukon alkio

stringiksi?

Mitenkähän tämä vertaaminen onnistuisi?

$tiedosto = fopen("tiedot.txt","r");
$tiedot = fread($tiedosto, filesize("tiedot.txt"));

$rivit = explode("\n",$tiedot);


Jos tulostan esim. echo rivit[0];
niin ohjelma tulostaa: nimi.

Nyt jos yritän verrata if operaattorilla rivit[0]=="nimi" niin tämä vertaaminen ei onnistukkaan. Pitääkö tuo taulukon alkio muuttaa string-muotoon ja miten se onnistuu?

6

489

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • juhakorkeapudas

      Explode funktion palauttaman taulukon elementit ovat string-muotoisia. Vika on siinä, että yrität erotella tekstitiedoston rivit rivinvaihdolla. Tee mielummin näin:

      $tiedosto = file("tiedot.txt","r");
      foreach ($tiedosto as $row) {

      if($row == "nimi"){ //tee jotain}
      else{ //tee jotain muuta}
      }

      • ei toiminut

        Tuo esimerkki ei kyllä toiminut(???)

        file() expects parameter 2 to be long

        Warning: Invalid argument supplied for foreach()

        Eli tuossa tekstiedostossa tiedot ovat eri riveillä

        aaa
        bbb
        ccc
        ddd
        eee

        Halusin tuolla explode funktiolla siis erotella nuo rivit erikseen taulukon alkioiksi ja sehän onnistui?


      • juhakorkeapudas
        ei toiminut kirjoitti:

        Tuo esimerkki ei kyllä toiminut(???)

        file() expects parameter 2 to be long

        Warning: Invalid argument supplied for foreach()

        Eli tuossa tekstiedostossa tiedot ovat eri riveillä

        aaa
        bbb
        ccc
        ddd
        eee

        Halusin tuolla explode funktiolla siis erotella nuo rivit erikseen taulukon alkioiksi ja sehän onnistui?

        Siis näin:

        $tiedosto = file("tiedot.txt");
        foreach ($tiedosto as $row) {
        if($row == "nimi"){ //tee jotain}
        else{ //tee jotain muuta}
        }


      • toimivan
        juhakorkeapudas kirjoitti:

        Siis näin:

        $tiedosto = file("tiedot.txt");
        foreach ($tiedosto as $row) {
        if($row == "nimi"){ //tee jotain}
        else{ //tee jotain muuta}
        }

        Ei kyllä tuokaan tunnu toimivan... Echolla tulostaa tuon rivin nimen, mutta edelleenkin tuo if-lause ei anna minkäänlaista tulostusta.

        $tiedosto = file("tiedot.txt");
        foreach ($tiedosto as $row) {
        echo $row;
        if($row == "nimi"){
        echo "testi";
        }

        ainoastaan tämä tulostuu
        echo $row => tulostaa: nimi


    • tällä tapaa

      Jotakin "hämärää" tuossa on, mutta mikähän mahtaa olla ongelmana tuossa "string"-tiedostojen vertailemisessa?

      Kirjoitan tiedot tiedostoon toisessa funktiossa tällä tavalla.

      • juhakorkeapudas

        Nähtävästi taulukon elementti pitää trimmata ennen vertailua, trim($rivi). Käytin tuota jossain joskus ehkä toisin, jolloin se toimi mainitulla tavalla.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Virkamiehille tarvitaan tuntuvat palkankorotukset

      Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi
      Maailman menoa
      38
      3672
    2. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      28
      3232
    3. Jäikö meidän välit

      Mielestäsi Kesken?
      Ikävä
      69
      2878
    4. Olisipa saanut sinuun

      Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak
      Ikävä
      91
      2720
    5. Miks tän meidän

      Rakkauden on pitänyt olla näin vaikeaa?
      Ikävä
      35
      1748
    6. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      81
      1699
    7. muista olla

      VAROVAINEN! m
      Ikävä
      22
      1518
    8. Elän vastoin

      Kaikkia arvoja kun en pysy sinusta erossa.
      Ikävä
      28
      1507
    9. Onneksi on edes yksi kuva

      Susta mitä voin välillä ihastella ja kaipailla sua😔
      Ikävä
      28
      1478
    10. Olisitpa se hellä

      Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k
      Ikävä
      23
      1474
    Aihe