Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenie regularne
Forum PHP.pl > Forum > PHP
Rafael6666
Mam np. taką treść:

  1. <body><div><table>Ala ma kota i nie ma kota <span>grubego</span> hehe</table></div><div>Cześć, jestem grześ</div></body>


Chcę z niej otrzymać w tablicy:

1. "Ala ma kota i nie ma kota <span>grubego</span> hehe".
2. "Cześć, jestem grześ".

Próbowałem już wiele sposobów, jeden z nich wygląda tak, ale nie działa poprawnie:

  1. <?php
  2. preg_match_all('#<(.+?)>[^<](.+?)[^>]</(.+?)>#i', $tresc, $tablica);
  3. ?>


Co zrobić abym osiągnął, to czego chcę?
AxZx
  1. <?php
  2. $string = '<body><div><table>Ala ma kota i nie ma kota <span>grubego</span> hehe</table></div><div>Cześć, jestem grześ</div></body>';
  3.  
  4.  
  5. preg_match_all("@<div>(.*?)</div>@", $string, $tab);
  6.  
  7. echo '<pre>';
  8. print_r($tab);
  9. echo '</pre>';
  10. ?>
Rafael6666
Nie chodzi mi o takie coś! I tak z tego nie wyjdzie to co chcę. To wyrażenie ma być uniwersalne! tekst może znajdować się nawet pomiędzy <alama> i </alama>, a wyrażenie i tak ma działać!
klocu
to może lepiej strip_tags będzie lepsze.
wiesz nawet próby takiego kombinowania są obarczone pewnym błedem bo albo obetnie Ci nie ten znacznik albo wogóle. kilka prób na tym samym stringu nie dało pożądanych rezultatów. naprawdę ja bym wyciągał pregiem z tej Twojej tresci wszytsko co jest wewnatrz "div" a potem wywalił to co zbędne aby otrzymać to co zamierzone.
Blodo
Zamiast wyrazenia regularnego uzyj DOM/XML?
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.