Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg match all pomoc przy wyrazeniu
Forum PHP.pl > Forum > Przedszkole
rad11
Czy moze mi ktos powiedziec dlaczego taki skrypt:

  1. preg_match_all('<div class="right"><a href="http://strava.github.io/api" target="_blank">API Documentation</a></div>(.*?)</td>', $response, $matches);


Nic nie zwraca niby w tym miejscu gdzie jest (.*?) jest wartosc ktora potrzebuje pobrac?
SmokAnalog
Wzorce w funkcjach preg_ muszą być zamknięte w tzw. delimiterze, dla przykładu jako delimiter wstawiłem znak #:
  1. preg_match_all('#<div class="right"><a href="http://strava\.github\.io/api" target="_blank">API Documentation</a></div>(.*?)</td>#', $response, $matches);


Poza tym postawiłem slashe przed kropkami, bo kropka oznacza dowolny znak, a nie o to chodzi.

No i na zakończenie, lepiej by było pobierać te wartości normalnym parserem DOM, a nie wyrażeniami regularnymi. Jeśli to jest jakaś jednorazowa operacja to jeszcze można przymknąć oko, ale jeśli nie, to przy najdrobniejszej zmianie drzewa DOM Twój wzorzec przestanie działać.
rad11
Tak delimiter mialem tylko tutaj cos mi sie nie dodal , lecz twoj przyklad rowniez nic nie pokazuje hmmm... ta wartosc bedzie raz pobierana i zapisana do bazy wiec chyba preg_match bedzie najlatwiejszym rozwiazaniem
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.