Я анализирую HTML-документ, и мне нужно извлечь все цены в нем (формат $ 99,00). Поэтому я хочу извлечь все элементы, которые содержат подстроку "Price" (или "price") в своем классе или атрибуте id. Но я попытался использовать что-то вроде $ ("[class * = 'Price']") или $ ("[id * = 'Price']"), а затем конкатенировать результаты в массиве, но часть селектора jquery не работает должным образом не находит ничего. Я делаю что-то не так или есть лучший способ сделать это? Любые предложения для лучшего подхода?
Спасибо.
ОБНОВЛЕНИЕ : На самом деле я использую порт jQuery с именем phpQuery для php.
UPDATE2 : я не знаю точного класса или идентификатора элементов, так как это общий сценарий, который я буду запускать на разных сайтах электронной коммерции, поэтому я использую * = подстановочный знак, чтобы получить все элементы (в основном, a, div, span и т. д., мне не нужно вводить). Я понял это, и это то, что я до сих пор:
function getPrice($doc){
phpQuery::selectDocument($doc);
$prices = array();
foreach(pq("[class*='Price'], [class*='price'], [id*='Price'], [id*='price']") as $res){
$each = pq($res);
if(preg_match('/\$\d+(?:\.\d+)?/', $each->text(), $matches)){
echo '<br>'.$matches[0].'</br>';
$prices[] = $each->html();
}
}
}
Это печать правильных элементов. Теперь мне нужно извлечь размер шрифта этих элементов, чтобы я мог отсортировать массив по размеру шрифта.