Как извлечь конкретные данные с помощью preg_match? - PullRequest
0 голосов
/ 19 марта 2010

Я ищу для извлечения значений из всей загрузки html (я только что обрезал до соответствующих данных), есть несколько элементов 'select', и я хочу извлечь только те, кто 'name' элемент соответствует имя «члены». Таким образом, в результате я бы хотел получить 5,10,25 и 30 (см. Ниже). Как мне добиться этого с помощью preg_match?

    <DIV id="searchM" class="search"><select name="aMembers" id="aMembers" tabIndex="2">
    <option selected="selected" value="">Data 3</option>
    <option value="5">A name</option>
    <option value="10">Another name</option>
</select>
</DIV>
<DIV id="searchM" class="search"><select name="bMembers" id="bMembers" tabIndex="2">
    <option selected="selected" value="">Data 2</option>
    <option value="15">A name</option>
    <option value="20">Another name</option>
</select>
</DIV>
<DIV id="searchM" class="search"><select name="aMembers" id="Members" tabIndex="2">
    <option selected="selected" value="">Data 1</option>
    <option value="25">A name</option>
    <option value="30">Another name</option>
</select>
</DIV>

1 Ответ

0 голосов
/ 19 марта 2010

Я бы попытался разбить эту задачу на 2 этапа:

  1. соответствующие необходимые теги
  2. соответствие необходимых значений в них

Так будет проще:

$str = 'your HTML code here...';
preg_match_all('|<select name="aMembers".*?</select>|ms', $str, $matches);
foreach ($matches[0] as $select) {
    preg_match_all('|value="(.+?)"|', $select, $matches2);
    var_dump($matches2[1]);
}
...