Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> rozbijanie ciagu na czastki
kriszna
post 6.07.2007, 10:04:10
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 6.07.2007
Skąd: Wola Zabierzowska

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


Witam
Mój problem jest następujący.
Mam ciąg znaków, powiedzmy znak1   znak2   znak3   itd; powiedzmy do znak100.
I chodzi mi o to, aby rozbić ten ciąg na znak1 , znak2 ...
Domyślam się, że należy zastosować pętle, funkcję explode.
Proszę o szybką odpowiedź.
Go to the top of the page
+Quote Post
phpion
post 6.07.2007, 10:11:44
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Dobrze się domyślasz, pętla będzie ci zbędna do rozbicia ale explode jak najbardziej się przyda. W takim razie: kierunek manual
Go to the top of the page
+Quote Post
matix
post 6.07.2007, 10:20:56
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Proste smile.gif

  1. <?php
  2. define ('SEPERATOR', '*'); // zdefiniuj stałą 'seperator'
  3. $string = 'znak1*znak2*znak3*znak4'; // ustaw według siebie
  4.  
  5. $czesci = explode(SEPERATOR, $string);
  6.  
  7. print_r($czesci); // pokaze wszystkie czesci, jako array
  8. ?>


Aby teraz wszystkie części wyświetlić, należy zastosować pętlę (for,foreach):

  1. <?php
  2. foreach ($czesci as $cz) 
  3. {
  4. echo $cz;
  5. }
  6. ?>


Bardziej obiektowo (nie miałem co robić:P):

  1. <?
  2. class ExplodeString {
  3. private $seperate;
  4. private $string;
  5. private $parts;
  6.  
  7. public function __construct(Text $string = '')
  8. {
  9. $this -> string = $string;
  10. }
  11.  
  12. public function explodeString(Seperator $seperate)
  13. {
  14. $this -> seperate = $seperate;
  15. $this -> parts = explode($this -> seperate, $this -> string);
  16. }
  17.  
  18. public function getResult()
  19. {
  20. return ($this -> parts);
  21. }
  22.  
  23. public function getString()
  24. {
  25. return ($this -> string);
  26. }
  27.  
  28. public function getSeperate()
  29. {
  30. return ($this -> seperate);
  31. }
  32. }
  33.  
  34. // przyklad uzycia:
  35.  
  36. $string = 'To * Jest * Przyklad';
  37.  
  38. $String = new ExplodeString($string);
  39. $String -> explodeString('*');
  40.  
  41. print_r ($String -> getResult()); // array ( 1 => 'to', 2 => 'jest', 3 => 'przyklad' ); - cos w tym stylu ;)
  42. echo $String -> getString(); // To * Jest * Przyklad
  43. echo $String -> getSeperate(); // *
  44. ?>


Teraz wystarczy $String -> getResult() zapętlić, czyli foreach, tj. pokazywałem kilka linii wyżej ;-)

To by było na tyle smile.gif

Ten post edytował matix 6.07.2007, 10:29:22


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
kriszna
post 6.07.2007, 10:33:13
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 6.07.2007
Skąd: Wola Zabierzowska

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


matix dzięki.
Go to the top of the page
+Quote Post
phpion
post 6.07.2007, 11:35:41
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@matix - chyba przydałyby się jeszcze klasy Text i Seperator... przekazujesz jako parametry obiekty takich typów więc twój kod zgłosi błąd. Poza tym Seperator jest również stringiem (ew. znakiem) winksmiley.jpg więc nie ma sensu tworzyć nowego typu dla niego.
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: 31.07.2025 - 10:39