Мне нужно получить доступ к тексту 48.20 Lac (s), который не содержит никаких тегов внутри div, поэтому я не могу получить к нему доступ. Мне нужно найти это в файле PHP. Я пробовал $ html-> find ('div.priceDetail'), а затем trim (strip_tags ($ result)), который дал мне 48.20 Lac (s) + ненужный текст. Поскольку я должен создать общий файл, я не могу зависеть от взрыва и взлома для конкретного фиксированного случая.
<div class="priceDetail"> <b>Total Price :</b> <img alt="" src="someimage">48.20 Lac(s) <!-- Per Sq Ft Price --> <span class="pricePerSqFt">(Price per sq.ft. : Rs. 3,679)</span> <!-- Code for price Trends --> <span class="priceGrowth">4 % <img alt="" src="someimage" align="absmiddle"> <span class="iconWhatisThis"> <img src="someimage" class="whatIcon" align="absmiddle"> <span style="" id="StoolTip" class="price_main-c"></span> </span> </span> <div class="tt_top-c"> <span class="priceGrowth"></span> </div> <div class="tt_mid-c"> <div class="tt_pointer-c"></div> <div> <span class="tt_txt-c">Per sq.ft. price for this property is <b>higher than the average</b>property price in this locality as per MagicBricks.com Price Trends.</span> </div> <span class="tt_txt-c"> <span class="tp_txt">To know more about this <a href="#priceTrends" onclick="swithTab('priceTrends', tabbedDivArray);">Click Here</a> </span> </span> </div> <div class="tt_bot-c"></div> </div>
Здесь решение с DomDocument, вероятно, более надежное, чем Regex:
$DOM = new DOMDocument; $DOM->loadHTML($str); //Get all the image tags $elem = $DOM->getElementsByTagName('img'); //Get the first Image $first = $elem->item(0); //Get the node after the image $txt= $first->nextSibling; //Get the text echo $txt->nodeValue;
Конечно, это требует, чтобы текст всегда находился после первого изображения в div.
Выполняйте как можно больше работы с DOM Parser, а затем, когда вы оставляете свою случайную загрузку текста, вытащите бит, который вы хотите, с помощью этого RegEx:
([0-9]{1,5}?\.[0-9]{2} Lac\(s\))
результат
48.20 Lac(s)
(Измените 5 в RegEx на количество цифр, которое вы хотите разрешить до десятичной точки)