Как я могу получить только атрибут alt тега a p в PHP?
Я работаю над сценарием, который является всего лишь ценой. Если я сделаю:
$alttag = $oNode['p'];
echo $alttag;
Это отразится на всем в <p></p>
.
Так что это будет эхом:
Руд- мерк кофейневрий пак 500 грамм
2 паккен
Придж за килограмм 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 и подключения к базе данных.
// 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('Y-m-d');
$data['dateStart'] = date('Y-m-d', strtotime("yesterday"));
$data['dateEnd'] = date('Y-m-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']);
?>
1 answers
Итак, это в основном веб-поисковик цен? Я бы посоветовал вам изучить возможность использования библиотеки 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