猿问

strip_tags + html 实体只获取数字

我想从这个字符串中删除除金额以外的所有内容:

<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8362;</span>700.00</span>

我试过:

  1. strip_tags( $total_price_paid ); - 不够。

  2. strip_tags( html_entity_decode( $total_price_paid ) ); - 它将实体解码为一个符号,之后我尝试了 preg_replace 但它没有用。

  3. preg_replace( '/[^0-9]/', '', $value ); - 没有摆脱 html 实体

这些都没有获得700.00格式化为浮点数的结果。

有人可以帮忙吗?


慕村225694
浏览 133回答 3
3回答

精慕HU

您还需要删除用于定义实体的特殊文本片段,因此您至少需要另一遍:$total_price_paid = strip_tags($total_price_paid);$total_price_paid = preg_replace("/&#?[a-z0-9]{2,8};/i", "", $total_price_paid);&nbsp;

猛跑小猪

如果你想使用 preg_match 那么你可以这样使用:$string = '<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">&#8362;</span>700.00</span>';preg_match('/\d+\.\d{1,2}/', $string, $matches);echo $matches[0]; // 700.00

烙印99

$str = '<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">₪</span>700.00</span>';echo floatval(substr($str, stripos($str, "</span>")+7, strripos($str, "</span>")+7));
随时随地看视频慕课网APP
我要回答