Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]WYrażenia regularne preg_match_all
Forum PHP.pl > Forum > Przedszkole
Warmix
Mam taki kod:
  1. <a href="def/plik-01-desc.html">X</a>, <a href="def/olaf-71-21-plik.html">Y</a>&nbsp;&nbsp;


Zmienne są części:
X
Y
oraz to, co jest pomiędzy def/ a .html

Potrzebuje wyciągnąć to: olaf-71-21-plik

Użyłem preg_match_all ale nie do konca działa
Na początku próbuję tylko wyciągnąć: olaf-71-21-plik.html">Y
a dopiero później tą nastepną część, ale już na tym etapnie cos mi nie działa sad.gif
  1. preg_match_all('/<a href="def\/(.[^<\/a>&nbsp;&nbsp;]*)<\/a>&nbsp;&nbsp;/', $strona, $link);


Mógłby ktoś zerknąć?
viking
Wyciągnij to normalnie parserem dom a nie regexpem i później już tylko prosta operacja na stringu.
Warmix
Trochę nowość dla mnie, ale rozumiem, że mam użyć czegoś takiego?
  1. foreach($strona->find('a') as $element)
  2. echo $element->href . '<br>';


A no i to zadziała, gdy mam pobrane całe źródło strony? W sensie, ze zmienna, w której wyszukuję zawartości pomiędzy 'a href' zawiera cały kod html strony.
viking
A dlaczego miało by nie zadziałać? Będziesz tylko musiał odpowiednio wskazać element nadrzędny.
Warmix
Na razie jeszcze nie rozumiem, ale spróbuję to ogarnąć tongue.gif
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.