Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie Znaków lub ich zmiana
Forum PHP.pl > Forum > Przedszkole
troian
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
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
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
Bo $echo jest tablicą, więc albo przy porównaniu używasz str_replace albo tworzysz nową tablicę
troian
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 biggrin.gif
johny_s
przy ostatniej wartości masz jeszcze znak nowej lini
troian
<br> Tak ?
nospor
Nie BR tylko znak nowej linii. BR to nowa linia w HTML.

Uzyj TRIM() i po sprawie
fate
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
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
trim na $echo[6]...
troian
haha.gif no fakt biggrin.gif 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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.