Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_match, podział po ; i przetwarzanie, Po raz kolejny
expert
post 8.09.2014, 23:17:05
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


  1. $text ='ICON:wrench-screwdriver.png;VALUE:test1,test2;';
  2. preg_match('/ICON\:(.*)\;/s',$text,$icon);
  3. preg_match('/VALUE\:(.*)\;/s',$text,$value);


Mam tekst, i chce jego 'opcje' podzielić przy średniku, a następnie odpowiednie opcje porozdzielać do zmiennych..
Czyli $icon[1]='wrench-screwdriver.png' a $value[1]='test1,test2'.
Efekt jest taki, że w $icon[1] mam 'wrench-screwdriver.png;VALUE:test1,test2'. Podejrzewam, że coś będzie zamiast 's' po wzorcu, tylko co?

Szperam w necie i po woli tracę cierpliwość.
Go to the top of the page
+Quote Post
kartin
post 8.09.2014, 23:28:30
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Użyj explode() zamiast wyrażeń regularnych.


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
by_ikar
post 9.09.2014, 07:25:31
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


  1. $text ='ICON:wrench-screwdriver.png;VALUE:test1,test2;';
  2.  
  3. preg_match('#ICON\:([^;]+)|VALUE\:([^;]+);#', $text, $match);
  4.  
  5. var_dump($match);


Pisane z palca więc mogą być jakieś babole.
Go to the top of the page
+Quote Post
expert
post 9.09.2014, 08:27:39
Post #4





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


  1. $text ='ICON:wrench-screwdriver.png;VALUE:test1,test2;AAA:alalal; DDD:zsdx;';

Ogólnie składnia jest XXX:zzzz;
Go to the top of the page
+Quote Post
lukasz_os
post 9.09.2014, 08:39:40
Post #5





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


Zrób explode po sredniku a potem w pętli po dwukropku.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
by_ikar
post 9.09.2014, 17:43:57
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


  1. <?php
  2.  
  3. $text ='ICON:wrench-screwdriver.png;VALUE:test1,test2;AAA:alalal; DDD:zsdx;';
  4.  
  5. preg_match_all('#([^:]+):([^;]+);#', $text, $match);
  6.  
  7. $result = array_combine($match[1], $match[2]);
  8.  
  9. var_dump($match, $result);


Zamiast array_combine, można napisać swojego jakiegoś foreacha, który by likwidował puste znaki.. No ale to już jest po twojej stronie.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 01:26