猿问

删除 curl 中的额外文本

我正在尝试使用 curl 和 simple_html_dom 库抓取一些数据,我可以成功抓取数据,但问题是我不想要一些带有数据的文本。


这是我正在使用的代码:


$price = $html->find("div[id='vi-mskumap-none'] span[itemprop='price']",0)->plaintext;

这是html源代码:


<div id="vi-mskumap-none" style="" class="u-flL w29 vi-price ">

    <span class="notranslate" id="prcIsum" itemprop="price" style="" content="515.0">US $515.00</span>

它在刮


515.00 美元


但我想删除美元并且只想要


515.00


有人可以帮忙吗


倚天杖
浏览 138回答 3
3回答

噜噜哒

我认为您可以使用getAttribute('content')代替plaintext来获得所需的结果。

狐的传说

如果你知道它只是一个数字,我的方法是:$price&nbsp;=&nbsp;preg_replace("/[^0-9.\-]+/",&nbsp;'',&nbsp;$price);这是正则表达式的含义:[^意味着我们开始了一个负集。它将匹配不在此集合中的任何内容0-9&nbsp;表示数字 0 到 9.&nbsp;是一个句点,以防数字(如您的示例)有小数点(通常您必须在正则表达式中转义句点,因为句点表示“任何字符”,但是当它在这样的集合中(在方括号中)时,您不不必逃避它\-&nbsp;是一个转义的破折号“-”,我添加了它以防你能找到负数。]&nbsp;关闭集合+&nbsp;意味着它可以匹配一个或多个字符(这样它会在一次传递而不是三个传递中替换“US $”,尽管我不知道它是否有区别)然后我用一个空字符串替换任何匹配的内容(除了数字、句点或破折号之外的所有内容),''从而有效地删除它。
随时随地看视频慕课网APP
我要回答