Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]StringBetween, zwracanie kilku elementów
Heniut
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


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

Ten post edytował Heniut 10.03.2012, 16:36:28
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Trzeci argument funkcji strpos.
2. Pętla + trochę własnej inwencji.
Go to the top of the page
+Quote Post
Heniut
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


A jakiś gotowy kod, albo nieco wyjaśnień?
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Wyjaśnienia masz w manualu.


--------------------
:)
Go to the top of the page
+Quote Post
jackraymund
post
Post #5





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


  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/


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
Heniut
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


Wielkie dzięki smile.gif
Można zamknąć :]
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 Aktualny czas: 21.08.2025 - 14:06