Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP] is_numeric źle działa
kubap007
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

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


Mam problem podczas sprawdzenia czy wartość wpisana w xml jest liczbą.

Mam coś takiego:

  1. $xml = simplexml_load_file($working_file);
  2.  
  3.  
  4. foreach ($xml->Project as $projekt)
  5. {
  6. ....
  7.  
  8. if( !is_numeric($projekt->pow_uzytkowa)) {$fl_add_record_xml=0;}
  9.  


i pomimo, iż w xmlu mam np. 200 to wywala mi flagę, że nie jest liczbą.
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


No to var_dump($projekt->pow_uzytkowa) i zobacz dlaczego. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Daimos
post
Post #3





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(Crozin @ 19.07.2011, 18:52:52 ) *
No to var_dump($projekt->pow_uzytkowa) i zobacz dlaczego. (IMG:style_emoticons/default/wink.gif)

Ale kolega wyraźnie napisał, że is_numeric źle działa, więc zapewne sprawdzał (IMG:style_emoticons/default/wink.gif)
Proponuję w takim wypadku zgłosić błąd php na https://bugs.php.net/
Go to the top of the page
+Quote Post
kubap007
post
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

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


Ok dzięki.

Teraz głupie pytanie (IMG:style_emoticons/default/smile.gif) jak z tego string(3) "200" uzyskać "200", bo rozumiem że sposób w jaki wywołuje ten obiekt zwraca całość z pod indeksu [0].

object(SimpleXMLElement)#5 (1) { [0]=> string(3) "200" }

Go to the top of the page
+Quote Post
Daimos
post
Post #5





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


możesz castować w locie do inta
czyli np:
  1. $string = '333';
  2. $int = (int) $string;
  3. var_dump($int);
  4. // ale z tym ostrożnie, bo:
  5. $string = 'bbb';
  6. $int = (int) $string;
  7. var_dump($int); // da Ci 0
  8. no i:
  9. $string = '333xxx';
  10. $int = (int) $string;
  11. var_dump($int); // da Ci 333

ewentualnie intval

  1. object(SimpleXMLElement)#5 (1) { [0]=> string(3) "200" }

toString, albo castuj też do stringa
  1. $string = (string) $tenobiekt;

is_numeric sobie radzi ze stringami, z obiektami nie (IMG:style_emoticons/default/wink.gif)

Ten post edytował Daimos 19.07.2011, 18:26:17
Go to the top of the page
+Quote Post
kubap007
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

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


THX.
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: 4.10.2025 - 06:28