2011-01-27 6 views
0

J'ai une série de boîtes de sélection dont j'aimerais obtenir des données, en les transformant essentiellement en tableau. Quel est le moyen le plus efficace de le faire? En ce moment je pense ....De la boîte de sélection au tableau

$html = file_get_contents('http://www.domain.com'); 

    preg_match_all("/name\=\'subscription\[division_id\]\' style\=\'width: 170px;\'>(.+?)<\/select>/is", $html, $matches); 

Je pensais à exécuter un autre code pour prendre les balises d'option dans un tableau, mais cela semble qu'il pourrait être un peu inutilement intensive

+0

votre grattage le site de quelqu'un d'autre pour obtenir le contenu de leur sélection? –

Répondre

1

Si vous sont en train de gratter pour une raison quelconque, vous pourriez probablement analyser le html de la page avec les commandes DOMXPath de php. Je ne peux pas écrire tout le code, mais vous pouvez commencer avec:

$xpath = new DOMXPath($dom); 
$select_values = $xpath->evaluate("/html/body//option"); 

vous courez tout à travers une boucle d'obtenir le contenu des options. Quoi qu'il en soit, avec quelque chose comme ça, vous pouvez éviter toutes les bêtises avec regex.

+0

Est-ce que DOMXPath casse si le code HTML n'a pas de balises de fin ou quelque chose comme ça? – Webnet

+0

Il peut fonctionner autour de beaucoup de problèmes, bien que je ne sois pas sûr de celui-là particulier. Les options n'ont pas de balises de fin? Cela semble que la page entière ne fonctionnerait pas correctement si c'était le cas. – dgig

Questions connexes