Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match - wydobycie wartości z div'a
Forum PHP.pl > Forum > Przedszkole
Majkelo23
Mam kilkanaście takich divów:

  1. id="quest_3"
  2. data-id="3"
  3. data-progress="1"
  4. data-goals="1"
  5. data-url="/game.php"
  6. class="quest opened finished "
  7. title="Godziwa nazwa"
  8. style="background-image:url( 'http://dspl.pl' );">


Potrzebuję wyciągnąć z nich liczbę: data-id="3" ale tylko w przypadku, gdy klasa jest równa: quest opened finished bo pozostałe divy mają klasę: quest opened (bez finished).

Napisałem takie coś:

  1. preg_match_all('"<div id=\"quest_([0-9]+)\" data-id=\"([0-9]+)\" data-progress=\"([0-9]+)\" data-goals=\"([0-9]+)\" data-url=\"(.*?)\" class=\"quest opened finished \""x', $v, $matching_questions);


Ale to nic nie znajduje.
SmokAnalog
Użyj PHP DOM, albo jakiejś wygodniejszej biblioteki, np. phpQuery.
Majkelo23
No dobra, a jeśli jednak wolałbym pozostać przy preg_matchu?
Pyton_000
Kod
/<div\s*id="quest_([0-9]+)"\s*data-id="([0-9]+)"\s*data-progress="([0-9]+)"\s*data-goals="([0-9]+)"\s*data-url="(.*?)"\s*class="quest opened finished "/
Majkelo23
Poradziłem sobie:
  1. preg_match_all('/<div(?:\s|\S)*?data\-id=\"([\d]+)\"(?:\s|\S)*?class=\"\s*quest opened finished\s*\"/i', $game_value, $matching_questions);
SmokAnalog
Fajnie, ale ten kod jest paskudny.
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.