Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] preg_match_all - maly problem
JanuszTracz
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 26.02.2009

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


Witam, mam maly problem otoz amm tekst postaci:



i chailbym wylowic 1 i 3, tyle ze jak? probowalem i wyciaga mi tekst 

  1. 1][/URL][URL=3][IMG]4[/IMG




prosze o pomoc pozdrawiam,

Janusz Tracz

Ten post edytował JanuszTracz 14.04.2009, 16:00:09
Go to the top of the page
+Quote Post
tomsi
post
Post #2





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Za pomocą explode "potnij sobie ten tekst na kawałki (każdy znak osobno) i sprawdź czy jest to liczba is_numeric a potem pobierz te liczby, które potrzebujesz.
http://forum.php.pl/index.php?showtopic=11...mp;#entry564706

P.S.
Aha jeżeli te liczby to tylko przykład o co Ci chodzi no to potnij sobie tekst, który jest w [] i porównaj jeśli jest równe [URL=cos_tam] to wypisz cos_tam

Ten post edytował tomsi 14.04.2009, 16:21:06
Go to the top of the page
+Quote Post
JanuszTracz
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 26.02.2009

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


a jezeli te numerki 1,2,3,4 to sa linki? 


takie cos robie:
  1. <?php
  2. preg_match_all('#[url=(.*)]#',$tekst, $screen);
  3. ?>

i wychodzi tak jak podalem w 1 poscie

Ten post edytował JanuszTracz 14.04.2009, 16:29:25
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




preg_match" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
kantek
post
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 15
Dołączył: 2.04.2009
Skąd: koszalin

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


Rozwiązanie dla ciągów typu:



z tego co napisałeś zrozumiałem, że potrzebujesz wyciągnąć ze stringa to co jest
pomiędzy = a ]

przykład:
  1. <?php
  2. function liczby($string)
  3. {
  4.    //rozbij ciag na tablice gdzie elementy  to czesci z ciagu pomiedy ktorymi bylo '='
  5.    $tab = explode('=',$string);
  6.    //mamy     1element. ([URL )       2.element (1][/URL][URL )   i 3.element(3][/URL])
  7.    
  8.    //pierwszy element zawsze usuwamy
  9.    array_shift($tab);
  10.    
  11.    //dla kazdego pola wykonuje -> znajdz pierwszy ] i usun go + to co jest za nim - zostaje sama liczba
  12.    foreach($tab as $var){
  13.        $wynik[] = substr($var, 0, strpos($var,']'));;
  14.    }
  15.    return $wynik;  //wynik w postaci tablicy
  16. }
  17.  
  18. $twoje_liczby = liczby("");
  19. print_r($twoje_liczby);
  20. ?>



Pozdrawiam

Ten post edytował kantek 14.04.2009, 16:51:35
Go to the top of the page
+Quote Post
JanuszTracz
post
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 26.02.2009

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


erix, tak wiem... tylko ze ja w tekscie mam kilka razy [url=(.*)] i wyciaga caly tekst miedzy pierwszym [url= a ostatnim ] aja chce po kolei kazdy link z [url=] ;/
Go to the top of the page
+Quote Post
kantek
post
Post #7





Grupa: Zarejestrowani
Postów: 73
Pomógł: 15
Dołączył: 2.04.2009
Skąd: koszalin

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


Jeżeli moje rozwiązanie jest złe podaj przykład jak to ma wglądać??

1.
Cytat
i chailbym wylowic 1 i 3, tyle ze jak? probowalem i wyciaga mi tekst

2.
Cytat
wyciaga caly tekst miedzy pierwszym [url= a ostatnim ] aja chce po kolei kazdy link z [url=] ;/


Ma wyciągać cyfry czy linki czy co (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Było o wywołaniach rekurencyjnych, poszukaj. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
JanuszTracz
post
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 26.02.2009

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


@kantek - linki linki, cyfry tak podalem dla przykladu..
Go to the top of the page
+Quote Post
kantek
post
Post #10





Grupa: Zarejestrowani
Postów: 73
Pomógł: 15
Dołączył: 2.04.2009
Skąd: koszalin

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


Proszę bardzo:

jeszcze łatwiej w takim razie
  1. <?php
  2. $kasza ="";
  3.  
  4. $tablica = explode('[/URL]', $kasza);
  5. array_pop($tablica);
  6.  
  7. foreach($tablica as $key => $element){
  8.    $tablica[$key] = $element.='[/URL]'; //dopisuje bo usunął podczas exploda
  9. }
  10.  
  11. //po tej pętelce w tablicy masz osobno linki tak jak chciałeś
  12.  
  13. //mozna bylo w 1 petli wypisac ale zeby bylo ladnie widoczne co otrzymano
  14. foreach($tablica as $key =>$element){
  15.    echo 'Element('.++$key.') : '.$element.'<br />';
  16. }
  17. ?>


Pozdrawiam

Ten post edytował kantek 14.04.2009, 18:40:14
Go to the top of the page
+Quote Post
JanuszTracz
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 26.02.2009

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


wszystko git, tylko jakbym chcial same linki te z [url=...] ?
Go to the top of the page
+Quote Post
zegarek84
post
Post #12





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(JanuszTracz @ 14.04.2009, 17:19:43 ) *
a jezeli te numerki 1,2,3,4 to sa linki? 
takie cos robie:
  1. <?php
  2. preg_match_all('#[url=(.*)]#',$tekst, $screen);
  3. ?>

i wychodzi tak jak podalem w 1 poscie

spróbuj (nie sprawdzałem...):
  1. <?php
  2. preg_match_all('/[url=([^]]+)]/i',$tekst, $screen);
  3. echo  '<pre>';
  4. print_r($screen);
  5. echo '</pre>';
  6. ?>
Go to the top of the page
+Quote Post
kantek
post
Post #13





Grupa: Zarejestrowani
Postów: 73
Pomógł: 15
Dołączył: 2.04.2009
Skąd: koszalin

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


To dajesz jak poprzednio tylko 1 pętla

  1. <?php
  2. foreach($tablica as $key => $element){
  3.    $tablica[$key] = substr($element, strpos($element,']')); //wywala bo juz tam nie ma
  4. }
  5. ?>


Pozdrawiam
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: 23.08.2025 - 02:13