SanchoZs Posted June 4, 2009 Report Share Posted June 4, 2009 Sveiki! Lieta tāda. Es ar file_get_contents savācu info no kādas lapas. Principā tie ir dati, kas sakārtoti tabulās. Sekojošs jautājums - Kā būtu vislvieglāk atlasīt datu nosaukumus un vērtības, ja dati ir sakārtoti sekojoši: <tr> <td class="NAME">Savienojums</td> <td class="VALUE">USB</td> </tr> <tr> <td class="NAME">Lielums</td> <td class="VALUE">5TB</td> </tr> utt. Varbūt kāds var pateikt, kā to info savākt ar preg_match masīvā, teiksim masivs['name'], masivs['value'], utt, bet jāņem vērā, ka td tagam var būt arī norādīti citi atribūti. Vai ir arī kādi citi varianti šajā gadījumā. Pašam prātā nāk čakarēties ar stringu graizīšanu, bet laikam tas būtu pārāk muļķīgi. Quote Link to comment Share on other sites More sharing options...
marrtins Posted June 4, 2009 Report Share Posted June 4, 2009 (edited) Tam paredzētas http://lv.php.net/dom funkcijas Labi, reku sample: <?php $HTML = '<tr> <td class="NAME">Savienojums</td> <td class="VALUE">USB</td> </tr> <tr> <td class="NAME">Lielums</td> <td class="VALUE">5TB</td> </tr>'; $dom = new DOMDocument('1.0', 'utf-8'); @$dom->loadHTML($HTML); $dom->normalizeDocument(); $xdom = simplexml_import_dom($dom); if($els = $xdom->xpath("//td")) { foreach($els as $el) { print_r($el->attributes()); } } Edited June 4, 2009 by marrtins Quote Link to comment Share on other sites More sharing options...
bubu Posted June 4, 2009 Report Share Posted June 4, 2009 Vai arī http://php.net/simplexml ja gribas ko vienkāršāku. Quote Link to comment Share on other sites More sharing options...
marrtins Posted June 4, 2009 Report Share Posted June 4, 2009 Ja pareizi atminos, tad simplexml patika tikai valīdi xml...? Varbūt arī nepareizi atminos :) Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted June 4, 2009 Report Share Posted June 4, 2009 (edited) ja $s satur to htmlu $res = array(); if(preg_match_all('/<tr>.*?<td.*?class=\"name\">(?P<name>.*?)<\/td>.*?<td.*?class=\"value\">(?P<value>.*?)<\/td>.*?<\/tr>/is',$s,$m)) { while($key = array_shift($m['name'])) { array_shift($m['name']); array_shift($m['value']); // tiek vala no tuksumiem $res[$key] = array_shift($m['value']); } } print_r($res); Edited June 4, 2009 by v3rb0 Quote Link to comment Share on other sites More sharing options...
SanchoZs Posted June 4, 2009 Author Report Share Posted June 4, 2009 Velns, v3rb0, neizsakāms paldies Tev! Ļoti vienkārši un nav daudz jāiedziļinās. Paldies, vēlreiz! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.