查找文本,而不在一个div元素任何标签(Find text without any tag in a

2019-06-26 01:34发布

我需要访问48.20紫胶(S)的文本,它是没有的div内的任何标记,这就是我不能够访问它的原因。 我需要找到这个在PHP file.I've试过$ HTML的“发现( 'div.priceDetail'),接着用TRIM(用strip_tags($结果)),这给了我48.20紫胶(S)+ unnecesary文本。 因为我已经建立一个通用的文件,我不能依赖于爆炸,爆了一个特定的固定情况。

<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>

Answer 1:

这里有一个解决方案的DomDocument,可能比正则表达式更强大的:

$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第一图像之后。



Answer 2:

与文本的随机载荷离开的时候做大量的工作,你可以用一个DOM解析器,然后拉出来一点要与此正则表达式:

([0-9]{1,5}?\.[0-9]{2} Lac\(s\))

结果

48.20 Lac(s)

(在正则表达式更改5要允许小数点前的位数)



文章来源: Find text without any tag in a div element