Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rozbijanie ciagu na czastki
Forum PHP.pl > Forum > PHP
kriszna
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ź.
phpion
Dobrze się domyślasz, pętla będzie ci zbędna do rozbicia ale explode jak najbardziej się przyda. W takim razie: kierunek manual
matix
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
kriszna
matix dzięki.
phpion
@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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.