Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]StringBetween, zwracanie kilku elementów
Forum PHP.pl > Forum > Przedszkole
Heniut
Przykładowo jak w $text mam:
  1. <lol>1</lol>
  2. <lol>2</lol>
  3. <lol>3</lol>
  4. <lol>4</lol>

i potem kod:
  1. echo StringBetween($text,"<lol>","</lol>");
  2. function StringBetween ($text, $s1, $s2) {
  3. $mid_url = "";
  4. $pos_s = strpos($text,$s1);
  5. $pos_e = strpos($text,$s2);
  6. for ( $i=$pos_s+strlen($s1) ; (( $i<($pos_e)) && $i < strlen($text)) ; $i++ ) {
  7. $mid_url .= $text[$i];
  8. }
  9. return $mid_url;
  10. }

i dostanę "1", a chciał bym aby w tablicy były wszystkie wyniki po kolei, a nie tylko pierwszy.

Pozdro
Crozin
1. Trzeci argument funkcji strpos.
2. Pętla + trochę własnej inwencji.
Heniut
A jakiś gotowy kod, albo nieco wyjaśnień?
peter13135
Wyjaśnienia masz w manualu.
jackraymund
  1. <?php
  2. $ty = TextBetweenArray("<lol>","</lol>","<lol>1</lol><lol>2</lol><lol>3</lol><lol>4</lol>");
  3. for( $i = 0; $i <= count($ty); $i++ ){
  4. echo $ty[$i];
  5. }
  6. function TextBetweenArray($s1,$s2,$s){
  7. $myarray=array();
  8. $s1=strtolower($s1);
  9. $s2=strtolower($s2);
  10. $L1=strlen($s1);
  11. $L2=strlen($s2);
  12. $scheck=strtolower($s);
  13. do{
  14. $pos1 = strpos($scheck,$s1);
  15. if($pos1!==false){
  16. $pos2 = strpos(substr($scheck,$pos1+$L1),$s2);
  17. if($pos2!==false){
  18. $myarray[]=substr($s,$pos1+$L1,$pos2);
  19. $s=substr($s,$pos1+$L1+$pos2+$L2);
  20. $scheck=strtolower($s);
  21. }
  22. }
  23. } while (($pos1!==false)and($pos2!==false));
  24. return $myarray;
  25. }
  26. ?>

http://snipplr.com/view/7392/
http://darmowepassy.pl/email/aha/aha/
Heniut
Wielkie dzięki smile.gif
Można zamknąć :]
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.