为了账号安全,请及时绑定邮箱和手机立即绑定

删除 curl 中的额外文本

删除 curl 中的额外文本

PHP
倚天杖 2021-09-18 10:34:04
我正在尝试使用 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有人可以帮忙吗
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-09-18
?
狐的传说

TA贡献1804条经验 获得超3个赞

如果你知道它只是一个数字,我的方法是:

$price = preg_replace("/[^0-9.\-]+/", '', $price);

这是正则表达式的含义:

  • [^意味着我们开始了一个负集。它将匹配不在此集合中的任何内容

  • 0-9 表示数字 0 到 9

  • . 是一个句点,以防数字(如您的示例)有小数点(通常您必须在正则表达式中转义句点,因为句点表示“任何字符”,但是当它在这样的集合中(在方括号中)时,您不不必逃避它

  • \- 是一个转义的破折号“-”,我添加了它以防你能找到负数。

  • ] 关闭集合

  • + 意味着它可以匹配一个或多个字符(这样它会在一次传递而不是三个传递中替换“US $”,尽管我不知道它是否有区别)

然后我用一个空字符串替换任何匹配的内容(除了数字、句点或破折号之外的所有内容),''从而有效地删除它。


查看完整回答
反对 回复 2021-09-18
  • 3 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信