Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Rzutowanie typu ze stringa
trucksweb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


odczytuje sobie zmienna z pliku
  1. $zm = array(0 => '1233.55', 1 => '3232323');
  2. $zmienna = (int)str_replace(".","",trim($zm[0]));


i jak wyswietlam
  1. echo gettype($zmienna ).$zmienna ;


to dostaje integer i 0 (IMG:style_emoticons/default/blinksmiley.gif)
czemu ?

Ten post edytował trucksweb 15.12.2010, 14:30:57
Go to the top of the page
+Quote Post
adasiu
post
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 18.01.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


a ja dostaję:
  1. integer123355
(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
trucksweb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ok, dla recznie wpisanych liczb dziala, ale ja te liczby odczytuje z pliku txt i umieszczam je w tablicy (tej powyzej) i wtedyjuz nie dziala (IMG:style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(trucksweb @ 15.12.2010, 14:45:38 ) *
ok, dla recznie wpisanych liczb dziala, ale ja te liczby odczytuje z pliku txt i umieszczam je w tablicy (tej powyzej) i wtedyjuz nie dziala (IMG:style_emoticons/default/dry.gif)

To nie ma znaczenia, zobacz sobie, co przechowuje tablica $zm: print_r($zm);
Być może tu leży problem. Dodam tylko, że do wyciągnięcia z łańcucha znaków liczby całkowitej służy funkcja intval (nie jestem pewny, co chcesz zrobić).

Ten post edytował darko 15.12.2010, 14:55:54
Go to the top of the page
+Quote Post
adasiu
post
Post #5





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 18.01.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


zawartość file.txt
Kod
1233.55
3232323


  1. $zm = file('file.txt');
  2. $zmienna = (int)str_replace(".","",trim($zm[0]));
  3. echo gettype($zmienna ).$zmienna ;


i nadal dostaję
integer123355

(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
trucksweb
post
Post #6





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


a w pliku txt wpisz 122.22 @ dfrfg

zmienna $text - to string z zawartoscia pliku txt
  1. $array = explode("@", $text);
  2. $zmienna = (int)str_replace(".","",$array [0]);


i chce wyciagnac jako int'a 122.22

//edit
hmm, po odczytaniu printem_r $array
w $array[0] sa jakies znaki (IMG:style_emoticons/default/questionmark.gif) ? jak sie tego pozbyc ? bo trim nie pomaga

Ten post edytował trucksweb 15.12.2010, 15:07:18
Go to the top of the page
+Quote Post
adasiu
post
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 18.01.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


zawartość file.txt
Kod
122.22 @ dfrfg
122.22 @ dfrfg


  1. $zm_tmp = file('file.txt');
  2. echo print_r($zm_tmp, 1);
  3. $zm = explode('@', $zm_tmp[0]);
  4. echo print_r($zm, 1);
  5. $zmienna = (int)str_replace(".","",trim($zm[0]));
  6. echo gettype($zmienna ).$zmienna ;


i dostaję

Kod
Array ( [0] => 122.22 @ dfrfg [1] => 122.22 @ dfrfg ) Array ( [0] => 122.22 [1] => dfrfg ) integer12222


(IMG:style_emoticons/default/smile.gif)

//edit
pytanie jakich znaków chcesz się pozbyć to raz a drugi raz to czy na pewno musisz to robić w ten sposób

Ten post edytował adasiu 15.12.2010, 15:17:58
Go to the top of the page
+Quote Post
trucksweb
post
Post #8





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


to u mnie cos nie hula (IMG:style_emoticons/default/worriedsmiley.gif)
gettype zwraca inta ale = 0

//edit
juz sie powoli wyjasnia.
Plik ma ustawione kodowanie na UTF-8
jak jest na ANSI wszystko dziala porpawnie.

mozna cos z tym zrobic ?

//
ok, rozwiazalem problem:
  1. $text = mb_convert_encoding($text, 'UTF-8',
  2. mb_detect_encoding($text, 'UTF-8, ISO-8859-2', true));



Ten post edytował trucksweb 15.12.2010, 15:40:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 03:58