pechu
5.07.2005, 15:36:08
Dlaczego po wczytaniu z pliku tekstowego ($dane) do tablicy ciągu znaków odzielonych ; czyli
x;
y;
a;
i rozbiciu na wiersze $tablica = explode(';', $dane);
przy próbie porównania czyli $zmienna=strcmp($tablica[2],"a")==0;
okazuje się, że $zmienna=-1. Wygłąda jakby $tablica[2] składała się z więcej niż 1 znaku. Dopiero obcięcie lewostronne substr($tablica[2], 1, 1) daje właściwy wynik porównania.
W pliku z danymi nie ma na pewno dodatkowych spacji. Dlaczego tak się dzieje?
Czy ma na to wpływ fakt, że dane są w osobnych wierszach?
SongoQ
5.07.2005, 15:42:33
Uzyj trim. Pewnie chodzi o enter.
crash
5.07.2005, 15:43:37
pechu
6.07.2005, 19:43:26
O.K. Dzięki.
Czy można jakoś rozbić tablicę biorąc pod uwagę znak nowego wiersza a nie jak u mnie znak ";"
crash
6.07.2005, 19:46:32
<?php
$tablica = explode( \"n\", $dane ); ?>
Ale i tak wypada zastosować trim() bo zawsze jakieś \r zostanie...
dasko
6.07.2005, 19:47:20
<?php
$tablica = explode(\"n\", $dane);
?>
Pamiętaj o umieszczniu znaków specjalnych( w tym przypadku \n ) w podwojnych cudzysłowach.