Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> rozbijanie ciagu na czastki
kriszna
post
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
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
Post #3





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

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


Proste (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował matix 6.07.2007, 10:29:22
Go to the top of the page
+Quote Post
kriszna
post
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
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) (IMG:http://forum.php.pl/style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 04:17