Как я могу получить только атрибут alt тега ap в PHP?

Я работаю над сценарием, что эхо – это только цена. Если я сделаю:

$alttag = $oNode['p']; echo $alttag; 

Он будет повторять все в <p></p> . Поэтому он будет эхом:

roodmerk of cafeïnevrij pak 500 грамм

2 pakken

prijs за килограмм 1,99

199

с веб-сайта, так что вы можете увидеть его эхо 199, это цена, но сначала мне нужно всего лишь 199 в <p></p> и я хочу. или, между 199, поэтому он покажет 1,99 или 1,99.

Если я сделаю:

 $alttag = $oNode['p sup']; echo $alttag; 

Это будет только эхо 99 из <sup></sup> Если я это сделаю:

 $alttag = $oNode['p sup']; $maintag = $oNode['p']->attr('alt'); echo $maintag . $alttag; 

Ну … Это ничего не делает. Как я могу получить только 1 и 99 и поместить a. или, между ним так будет выглядеть 1,99 или 1,99?

  <div class="item-prijs"> <p> <cufon class="cufon cufon-canvas" alt="1" style="width: 27px; height: 42px; "> <canvas width="47" height="43" style="width: 47px; height: 43px; top: -1px; left: -2px; "></canvas> <cufontext>1</cufontext> </cufon> <sup> <cufon class="cufon cufon-canvas" alt="99" style="width: 24px; height: 20px; "> <canvas width="35" height="21" style="width: 35px; height: 21px; top: -1px; left: -1px; "> </canvas><cufontext>99</cufontext> </cufon> </sup> </p> </div> 

Полный код: без включения php-функций и datbase-соединения.

 // Extracts offers from html and return in array function extractSparOffers($url) { loadPqUrl($url); //Test $dates = extractDateRange(pq('.contentdatagrid td:first')); $oNodes = pq('.item'); if($oNodes->count() == 0) throw new Exception('No offers were found.'); foreach($oNodes as $oNode) { $oNode = pq($oNode); //Test $titleDescCell = $oNode['input#a']->parent(); //Test $titleDescCell['img, input']->remove(); $priceCell = $oNode['span.price1']->parent()->parent(); // Get title and description $data['title'] = $oNode['.item-content h3']; $data['description'] = $oNode['.item-content p']; // Get prices (page may contain price ranges) $alttag = $oNode['p sup']; $maintag = $oNode['p']->attr('alt'); echo $maintag; //echo $alttag; //$alttags=preg_match_all('/<img[^>]*alt="([^"]*)"/i', $html, $matches); $none = "0.00"; $data['priceBefore'] = $none; $data['priceAfter'] = $alttag; // $oNode['item-prijs p.sup.cufon cufon-canvas']->attr('alt') ; // Get image $imgNode = $oNode['img:only-child']; if(count($imgNode) > 0) $img = getimg('http://www.spar.nl/' . $oNode['img:only-child']-> attr('src')); else $img = ''; $data['image'] = $img; //Test $data['dateStart'] = $dates['start']; //Test $data['dateEnd'] = $dates['end']; $date =date('Ym-d'); $data['dateStart'] = date('Ym-d', strtotime("yesterday")); $data['dateEnd'] = date('Ym-d', strtotime("tomorrow")); $data = formatOfferStrings($data); $odTotal[] = $data; } return $odTotal; } spiderInit(); $offerData = extractSparOffers('http://www.spar.nl/aanbiedingen/'); //Test processNewOffers('Spar', $offerData, $offerData[0]['dateStart']); processNewOffers('Spar', $offerData, $dates['start']); ?> 

Так это в основном веб-искатель цен? Я бы предложил вам изучить библиотеку DOMDocument PHP для анализа XML (какой XHTML практически). Тогда вы можете сделать что-то вроде:

 //create a new DOMDocument object $xmlDoc = new DOMDocument(); //load your html for parsing $xmlDoc->loadHTML("<html><body>Your HTML Code<br></body></html>"); //select the element that you want the attribute from...you may need to use $xmlDoc->getElementsByTagName('p'); $p_element = $xmlDoc->getElementById('yourtag'); //get the attribute alt of the selected element $alt = $p_element->getAttribute('alt'); //show alt attribute value echo $alt; 

Это всего лишь псевдокод и не решит вашу проблему, но, похоже, это лучшее решение, чем тот, который вы пытаетесь использовать. Посмотрите на эти ссылки для получения дополнительной информации (надеюсь, это поможет):

http://www.php.net/manual/en/domdocument.construct.php

http://php.net/manual/en/domelement.getattribute.php

http://www.php.net/manual/en/domdocument.getelementsbytagname.php

http://www.php.net/manual/en/domdocument.getelementbyid.php