Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Parsowanie stringu
desavil
post
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 3
Dołączył: 15.10.2008
Skąd: Internet

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


Witam,

W jaki sposób mogę parsować takie coś?:
  1. [("key","val"), ("key2","val2"), ("key3","val3")]

Wpisując "key" chcę uzyskiwać daną wartość przypisaną do niego.
Zaznaczam, że nie jest to JSON, a kolejność może być różna.

Dzięki!

Ten post edytował desavil 7.02.2017, 14:13:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
daro0
post
Post #2





Grupa: Zarejestrowani
Postów: 88
Pomógł: 12
Dołączył: 17.09.2014
Skąd: Krasnystaw

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


A to?

  1. $subject = '[ ( "key" , "val" ), ("key2","[]{}()val2" ), ("key3","val3")]';
  2.  
  3. $patterns = array(
  4. '/\([\s]*"/',
  5. '/"[\s]*\)/',
  6. '/"[\s]*,/',
  7. );
  8. $replace = array(
  9. '{"',
  10. '"}',
  11. '":',
  12. );
  13.  
  14. $json = preg_replace($patterns, $replace, $subject);
  15. var_dump($subject, $json, json_decode($json));


wynik:

  1. string(69) "[ ( "key" , "val" ), ("key2","[]{}()val2" ), ("key3","val3")]"
  2. string(58) "[ {"key": "val"}, {"key2":"[]{}()val2"}, {"key3":"val3"}]"
  3. array(3) {
  4. [0]=>
  5. object(stdClass)#1 (1) {
  6. ["key"]=>
  7. string(3) "val"
  8. }
  9. [1]=>
  10. object(stdClass)#2 (1) {
  11. ["key2"]=>
  12. string(10) "[]{}()val2"
  13. }
  14. [2]=>
  15. object(stdClass)#3 (1) {
  16. ["key3"]=>
  17. string(4) "val3"
  18. }
  19. }
  20.  


Ten post edytował daro0 7.02.2017, 16:09:38
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 05:21