0

$details['wasprice'] 的值包含单词“was”(即是 $23.99)。我想删除单词“was”并将值保留为“$23.99”。

下面的代码:

foreach($html->find('div.product-details-contents') as $content) {
    $detail['img'] = $content->find('img.product-details-image',0)->src;
    $detail['title'] = $content->find('span.title', 0)->plaintext;
    $detail['units'] = $content->find('span.unit-size', 0)->plaintext;
    $detail['wasprice'] = $content->find('span.was-price', 0)->plaintext;
    $detail['nowprice'] = $content->find('span.special-price', 0)->plaintext;

$product[] = $detail;

}

print_r($product);

我只是想知道如何去做。

谢谢

4

5 回答 5

0

使用PHP 清理过滤器删除所有非数字,然后放回美元($)符号。

 $newprice = "$".filter_var($wasprice, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);

在您的示例代码中使用它:

<?php 
foreach($html->find('div.product-details-contents') as $content) {
  $detail['img'] = $content->find('img.product-details-image',0)->src;
  $detail['title'] = $content->find('span.title', 0)->plaintext;
  $detail['units'] = $content->find('span.unit-size', 0)->plaintext;
  $detail['wasprice'] = "$".filter_var($content->find('span.was-price', 0)->plaintext, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);
  $detail['nowprice'] = $content->find('span.special-price', 0)->plaintext;
  $product[] = $detail;
}
print_r($product);
?>
于 2013-04-11T00:34:12.920 回答
0

使用str_replace()

$detail['wasprice'] = str_replace('was ', '', $detail['wasprice']);
于 2013-04-10T23:00:46.867 回答
0
if (substr($detail['wasprice'], 0, 4) === 'was ') {
  $detail['wasprice'] = substr($detail['wasprice'], 4);
} else {
  // ruh-roh
}
于 2013-04-10T23:01:38.260 回答
0

我会在$使用之前替换任何东西preg_replace()

$detail['wasprice'] = preg_replace('/([^$]*)(.*)/', '$2', $detail['wasprice']);
于 2013-04-10T23:05:06.517 回答
0

第三种解决方案:

$detail['wasprice'] = ltrim($detail['wasprice'], " asw");
于 2013-04-10T23:05:31.740 回答