Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]preg_match_all
Forum PHP.pl > Forum > Przedszkole
super1254
Witam

Mam problem

Mam taki kod:
  1. <?php
  2. preg_match_all('[<span class="postbody">(.+?)</span></td>]is',$strona,$categoria);
  3. $tekst=strip_tags($categoria[0][0]);
  4. ?>


Wszystko działa dobrze tylko w tym problem że chce by wyświetliło/zapisało wszystkie treści z <span class="postbody">(.+?)<\/span><\/td> smile.gif

Po prostu kod z którego pobieram wygląda tak: - jest to tylko schemat biggrin.gif

  1. <span class="postbody">Treść</span></td>
  2. a
  3. <span class="postbody">Treść2</span></td>
  4. sdsadsadsa
  5. <span class="postbody">Treść3</span></td>
  6. dfeqwwqewq


Już z góry zaznaczam że proszę o jak najprostsze rozwiązanie smile.gif
xian.pl
Powinno zadziałać:

  1. <?php
  2. preg_match_all('<span class="postbody">(.+?)</span></td>',$strona,$categoria);
  3. $tekst=strip_tags($categoria[0]);
  4. ?>
super1254
Przykro mi ale nie działa:
Komunikat
"Array"

Aha i najlepiej by było gdyby każdy tekst był w innej zmiennej
  1. <?php
  2. $tekst1 = "tekst1";
  3. $tekst2 = "tekst2";
  4. $tekst3 = "tekst3";
  5. ?>


Ale dzięki za zainteresowanie smile.gif

PS. Już wiem jak to zrobić smile.gif
  1. <?php
  2. $tekst=strip_tags($categoria[0][1]);
  3. ?>


Wystarczy w nawiasie kwadratowym wpisać liczbę ;] - Ile tych znaków ma być pominiętych biggrin.gif
krzyzak_p
Wybaczcie, ze odkopie temat, ale podane wyzej przyklady nie dzialaja, kombinowalem z roznymi zrodlami i cos nie cos wykombinowalem:

  1. <?php
  2. $profil = $_POST['profil'];
  3. preg_match_all('|(?:<td class = "wartosc">) .* (?:</td>)|', $profil, $dane); //dopasowanie do wyrazenia regularnego..
  4. print_r($dane);
  5. ?>


w $_POST['profil'] podane sa dane w formacie:

  1. <td class = "wartosc">dane litery i cyfr</td>


i interesuje mnie wyciagniecie zawartosci komorki.. ale jedyne co to mi wyswietla pusta tablice danych;/

Ktos ma pomysl w czym problem?
nowotny
  1. <?php
  2. preg_match_all('|<td class = "wartosc">(.+)</td>|U', $profil, $dane);
  3. ?>
krzyzak_p
mimo szczerych checi z mojej (i skrytpu;p) strony nadal nie dziala..

gdy wrzuce pod $profil takie dane:
  1. <td class = "wartosc">ktos</td>


to nie wynajduje nic... wyswietla pusta tablice wyjsciowa..
  1. Array ( [0] => Array ( ) [1] => Array ( ) )
nowotny
SOA#1... :/
krzyzak_p
@nowotny:
mógłbyś jaśniej napisać o co Ci chodzi? Bo nie rozumiem..
nowotny
U mnie działa...
krzyzak_p
hmm ciekawe;p Bo pracuje na 5.2.4...
No ale w takim razie bede uderzal do admina, bo u niego rozne rzeczy nie dzialaja;p
diox
Witam !
mam dość podobny problem jak poprzednicy , szczerze bałem sie odpisywać na posty z przed roku ale szperając w google jak i forum nie znalazłem odpowiedzi na moje pytanie

otóż mam taki kod

  1.  
  2. $filtr = "|<div style=\"z-index: 1000;\" class=\"avatars\">(.*)<div class=\"clear\"><!-- . --><\/div><\/div>|U";
  3. preg_match_all($filtr, $site, $out, PREG_PATTERN_ORDER);
  4.  
  5. foreach($out[0] as $k)
  6. {
  7. echo $k."<br />";
  8. }
  9.  

w $site mam kod stronki z której chcę wydobyć wszystko co jest pomiędzy:
  1. <div style="z-index: 1000;" class="avatars">

a
  1. <div class="clear"><!-- . --></div></div>


i tym "filtrem" nie daje rady tego zrobić .. czy ktoś mógł by mi wskazać błąd? we. napisac jak powinienem to wyrażenie zapisać ?
pozdrawiam D.
blizniak
  1. <div style="z-index: 1000;" class="avatars">cos tam<div class="clear"><!-- . --></div></div>


  1. preg_match('/\<div style\=\"z\-index\: 1000\;\" class\=\"avatars\"\>(.*?)\<div class\=\"clear\"\>\<\!\-\- \. \-\-\>\<\/div\>\<\/div\>/ism',$string,$match);
diox
  1. preg_match('/\<div style\=\"z\-index\: 1000\;\" class\=\"avatars last_guests\"\>(.*?)\<div class\=\"clear\"\>\<\!\-\- \. \-\-\>\<\/div\>\<\/div\>/ism',$site,$out);
  2.  
  3.  
  4.  
  5. foreach($out as $k)
  6. {
  7. echo $k."<br />";
  8. }


niestety w dalszym ciągu nie wyświetla nic , co prawda w moim przykładzie zaponiałem o " last_guests" ale nie ważne czy jest napiane " last_guests" czy " last\_guests" dalej wyświetlane jest -- nic
blizniak
to co napisalem wyzej u mnie dziala
sprawdzone tutaj http://regexp.pl/
moze masz jakis problem z kodowaniem
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.