0

$details['wasprice'] の値には、「was」という単語が含まれています (つまり、was $23.99)。「だった」という単語を削除し、値を「$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

$使用する前に何かを置き換えますpreg_replace()

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

3 番目の解決策:

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