Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyciąganie tablicy (tekstu) ze string'u, w dziwnej formie.
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć posiadam dosyć dziwny string, który odbieram od użytkownika i potrzebuję go rozdzielić na tablicę z kilkoma wynikami..

zmienna wygląda tak:

  1. $_POST['od_user'] = '/komenda 111,111,2222,333,444,5555,555,66666';


Potrzebuję wyciągnąć z tej zmiennej takie rzeczy:
(Na przykład w takiej formie)
  1. $str[0] = 'komenda';
  2. $str[1] = '111,111';
  3. $str[2] = '2222';
  4. $str[3] = '333';
  5. $str[4] = '444';
  6. $str[5] = '555,555';
  7. $str[6] = '66666'


Głównie to rozdzielił bym sobie to wszystko explode(), rozdzielił bym przecinki wtedy otrzymał bym mniej więcej podobny zapis.. ale nie oto mi chodzi, potrzebuje tak jak w moim przykładzie..

Da się coś takiego wykonać ?.


Z góry bardzo dziękuje i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Mary$
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


  1. $str = $_POST['od_user'] = '/komenda 111,111,2222,333,444,5555,555,66666';
  2. $str = substr($str,1,strlen($str)); // ucięcie tego slasha z przodu
  3. $str = explode(','$str); // rozdzielenie po przecinkach
  4. $ct = count($str);
  5. $tmp = explode(' ',$str[0]); // oddzielenie komendy od pierwszego argumentu
  6. $tab[0] = $tmp[0]; // komenda
  7. $tab[1] = $tmp[1] .','. $str[1]; //111,111
  8. $tab[2] = $str[2]; // 2222
  9. $tab[3] = $str[3]; // 333
  10. $tab[4] = $str[4]; // 444
  11. $tab[5] = $str[5] .','. $str[6]; // 5555,555
  12. $tab[6] = $str[7]; // 66666


da się z explode, ale nie wiem, czy nie pomyliłem się gdzieś w numeracji elementów.
zakładając oczywiście, że tych elementów masz tylko tyle, ile podałeś wyżej (tzn. nie pojawia się później 7777, 888 itp.)
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


  1. $text = '/komenda 111,111,2222,333,444,5555,555,66666';
  2. $text = trim($text, '/');
  3.  
  4. $text = preg_match_all('/[a-z0-9]+/', $text, $match);
  5.  
  6. echo '<pre>';
  7. print_r($match);


Edycja, ups, fakt nie będzie połączenia zbioru.

Ten post edytował !*! 18.02.2013, 21:10:30
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 - 22:52