Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match - proszę o wskazanie błędu i wyjaśnienie
Forum PHP.pl > Forum > Przedszkole
axwell
Bawię się tą funkcję preg_match już od kilku dni ale napotkałem na dziwny (dla mnie) problem. Otóż moje wyrażenie regularne nie znajduje dopasowania, mimo iż na logikę powinno. Oto przykład:

Wyciąłem kawałek kodu html strony:

  1. $tekst = '<td width="20">&nbsp;</td>
  2. <td class="water">
  3. Idealna jako dodatek do warzyw. </td>
  4.  
  5. </tr>
  6. ';
  7.  
  8. preg_match('/<td width="20">&nbsp;<\/td>(.*?)<\/tr>/', $tekst, $wynik);


Dziwi mnie to, że powyższy przykład nie zwraca nic - pusta tablica - Array () Zauważyłem że dzieje się tak, gdy w wyrażeniu reglarnym zaczynam stosować tagi html. Ewentualnie proszę o nakierowanie mnie na inny błąd, który popełniam?
bastard13
A spróbuj swoją zmienną zapisać w ten sposób (w jednej linii, bez enterów):
  1. $tekst = '<td width="20">&nbsp;</td><td class="water">Idealna jako dodatek do warzyw. </td></tr>';

bo wydaje mi się, że chodzi o fakt, że w twojej zmiennej są jeszcze znaki nowej linii, których w wyrażeniu nie uwzględniasz.
axwell
Fakt... czyli już wiem o co chodzi. Tyle, że kod strony pobieram Curlem, a wiec ma wiele znaków nowej linni. Czy istnieje jakieś wyjście z tej sytuacji?
Pawel_W
http://php.net/manual/en/reference.pcre.pa...n.modifiers.php

modyfikator "s"
bastard13
http://php.net/manual/en/function.preg-replace.php
i usuwasz znaki nowej linii.
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.