Domanda

Sto cercando di estrarre i valori da un intero carico di html (ho appena tagliato fino ai dati rilevanti), ci sono più 'selezionare' gli elementi, e solo voler estrarre chi è elemento 'nome' corrisponde al Name 'AMEMBERS. Quindi, i valori risultanti vorrei recuperare sono 5,10,25 e 30 (vedi sotto) come posso raggiungere questo obiettivo con 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>
È stato utile?

Soluzione

vorrei provare a dividere questo compito in 2 fasi:

  1. corrispondenza necessaria tag
  2. corrispondenti valori necessari in loro

In questo modo sarebbe più facile:

$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]);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top