Nie bardzo mi to działa
Konstruuję wzór:
$wzor="<tr><td class='name'>(.*)</tr></td>";
Daję name w cudzysłowie pojedynczym, gdyż taki znak zawiera string z kodem HTML.
Ubieram to w ograniczniki: $wzor="/<tr><td class='name'>(.*)</tr></td>/"; (wiele przykładów które widziałem przed <tr> sugerowało | albo nawet @)
Znaki specjalne < i / poprzedzam \: $wzor="/\<tr>\<td class='name'>(.*)\<\/tr>\<\/td>/";
I nic się nie dzieje - tzn funkcja preg_match_all nie wybiera nic
Dla pewności daję znaki \ również przed =: $wzor="/\<tr>\<td class/='name'>(.*)\<\/tr>\<\/td>/";
Nie jestem pewniem, czy źródło między tagami html nie zawiera jakichś znaków (spacje, tab, cr/lf), może między nimi dać również (.*) ?
Oczywiście w zmiennej $wzór jest błąd kolejności tagów </tr></td>. Po zmianie otrzymuję "jakieś" wyniki. Kwestia tylko sprawdzenia czy poprawne, co wiąże się z innym problemem (usuwanie zbędnych tagów z html).
Tak więc analiza wyników wskazuje, że
$wzor="/\<tr>\<td class=\'name\'>(.*)\<\/td>\<\/tr>/s";
nie zwraca nic, co sugeruje, że między <tr> a <td class są jednak jakieś znaki, bo
$wzor="/\<tr>(.*)\<td class=\'name\'>(.*)\<\/td>\<\/tr>/s";
zwraca wyniki w miarę poprawne. W miarę bo "łapie" np. niepotrzebne tagi <tr><td align =...

Jak więc poprawić $wzór by po <tr> sprawdził tylko spacje i tabulatory??