troian
23.07.2014, 10:08:27
Witam mam drobny problem z kodem php nie bardzo wiem jak sobie z nim poradzić, plik w którym zawarte są wartości wygląda następująco:
wartosci.txt
"wartosc1";"wartosc2";"wartosc3";"wartosc4"
Jak widać po między wartościami 2 i 3 jest znak ";" więc usunąłem go za pomocą takiej funkcji:
$echo = explode('";"', fgets($plik));
i kiedy wpisze $echo['2'] odczytuje mi wartosc2
kiedy wpiszę $echo['4'] wyswietla mi wartosc4"
niby nie przeszkadza mi to " gdyż to miało iść tylko do sortowania, ale kiedy napisze:
if($echo['4'] == 'wartosc4"')
nie działa wgl :/ nie wiem jak zrobić dwa atrybuty które będą kasowały i znaki ";" i pozostały na początku i końcu "
Ma ktoś jakiś pomysł?
Turson
23.07.2014, 10:10:19
Cytat
Jak widać po między wartościami 2 i 3 jest znak ";" więc usunąłem go za pomocą takiej funkcji:
Explode nie usuwa a rozbija stringa i wsadza do tablicy.
Jak przeszkadza " to usuń za pomocą str_replace
troian
23.07.2014, 10:12:01
Napisałem o tak ale nie działa :
$odczyt = explode(';', fgets($plik));
$echo = str_replace('"', "", $odczyt);
edit znaczy działa jeżeli odczytamy wartosc3 [ przed ostatnią ] ale kiedy chce ostatnią wartość czyli piszę:
if($data['6'] == "wartosc4")
to nie działa wgl ;/
a kal dam
if($data['6'] == "wartosc3")
to działa
Turson
23.07.2014, 10:15:49
Bo $echo jest tablicą, więc albo przy porównaniu używasz str_replace albo tworzysz nową tablicę
troian
23.07.2014, 10:19:39
ale mówię ci że on pomija, znalazłem winę wartosc4 ma na koniec spacje bo wpisałem aby przez echo['4'] wyśwetliło mi to wartość ale wpisałem go po miedzy :: więc powinno wyglądac :wartosc4: a wygląda :wartosc4 : i on mi tą spacje czyta ale w if nie widzi spacji
johny_s
23.07.2014, 10:25:58
przy ostatniej wartości masz jeszcze znak nowej lini
troian
23.07.2014, 10:28:08
<br> Tak ?
nospor
23.07.2014, 10:34:21
Nie BR tylko znak nowej linii. BR to nowa linia w HTML.
Uzyj TRIM() i po sprawie
fate
23.07.2014, 10:36:00
Co przechowujesz w tablicy $data nie pokazales calego skryptu
w ifach coś czuje że powinienes porownywac bardziej:
if($data['6'] ==$echo[2])
if($data['6'] ==$echo[3])
troian
23.07.2014, 10:36:06
Cytat(nospor @ 23.07.2014, 11:34:21 )

Nie BR tylko znak nowej linii. BR to nowa linia w HTML.
Uzyj TRIM() i po sprawie
if($echo['6'] == TRIM('wartosc4'))
Dobrze ?
Turson
23.07.2014, 10:38:04
trim na $echo[6]...
troian
23.07.2014, 10:39:49

no fakt

Dzięki wielkie za pomoc :-) działa już
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.