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?
taulukon alkio
6
509
Vastaukset
- 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
Kansalla on oikeus tietää miksi persut pettävät
Koko kulunut hallituskausi on kysytty persuilta, minkä vuoksi he ovat pettäneet käytännössä jokaisen vaalilupauksen, ain2689409Kunnissa - siis myös kaupungeissa - viihtyvät ovat kommunisteja
Nehän ovat osa yhteiskunnan tuottamia instansseja, joista on vain haittaa veronmaksajille ja yrittäjlle, kuten ollaan ve52811Ammattiliitto 900 euroa/vuosi - Työttömyyskassa 72 euroa/vuosi
Ammattiliitosta eroamalla voi säästää jopa 800 euroa vuodessa. Mitä enemmän tienaat, sitä enemmän maksat liitolle. Esim2452028Kansalla on oikeus tietää mikä on SDP:n talousohjelma jolla maan talous
saadaan nousuun? Miksi puolue piilottelee sitä, vai eikö sitä ole? Tähän asti olemme vaan saaneet kuulla hallituksen ha1051940- 1441447
SDP todellisuudessa pahin pettäjä koskaan - se syyllistyi valtiopetokseen 1918
kun aloittivat kapinan maan laillista valtiojärjestystä vastaan. Punaiset saivat tukea Neuvosto-Venäjän bolsevikeilta,711438Iski taas katumus kun en jutellut sun kanssa
Silloin kun halusit. Mutta en enää voi sille mitään, en saa muutettua sitä hetkeä..1311363Kyriake=Kirkko
Kirkko, Kyriake Kirkko-sana tulee kreikankielen sanasta Kyriake=Herran omat, Kristuksen omaksi kastettujen suuri joukko931016- 71931
- 40848