0

私はこのHTMLコードを持っています:

<span class="price">Price: <font class="rosu_12px_bold">2'099<sup>99</sup></font> EUR</span>

そして私はなんとか価格を抽出することができました:2'09999

supタグをキャッチして、を挿入できません。

今、私のデータベースでは、実数しか保存できません

抽出された値は数値ではないため、この値を挿入しようとすると0の値が取得されます。

私はそれをこの方法でしか挿入できません:2099.99

抽出した値がどのように見えるかわからないので、フォーマットするためのソリューションが必要です。

4

2 に答える 2

4

これを試して:

<?php
    $abc="2'099";
    echo preg_replace('/[^0-9]/i', '', $abc);
    ?>

編集:これはピリオド(。)も置き換えることに注意してください。

さらに別の編集:ストリップタグを使用してhtmlタグを削除できます

<?php
$abc="<font class='rosu_12px_bold'>2'099<sup>99</sup></font>";
echo preg_replace('/[^0-9.]/i', '', strip_tags($abc));
?>

編集: ただし、sup タグ間の 99 は、通貨の下位額面が 99 セントである可能性があることを示している可能性があります。この場合、上記の例は機能しません。

さらに別の編集、ストリップタグを使用する前に、通貨の低い額面を維持したい場合は、sup タグをピリオド (.) に置き換えてから、strip_tags を使用できます。

お役に立てれば

于 2012-08-10T07:59:40.343 に答える
0

1'23499or1.99989またはorまたは1'345'99or1'234.99または他の形式のような文字列しか取得できません。

問題は99セントをどうやって手に入れるかです。

これらの値には、次の文字が含まれます。

0 1 2 3 4 5 6 7 8 9 . , '

可能な任意の組み合わせで

私の解決策は次のとおりです。

  1. 0 - 9数字以外のすべてを.ドット)に置き換えます

  2. 文字列を位置0からstrlen-1まで、および最初の.ドット)が見つかった場所から、3〜3文字で(ドット)を挿入してみ.ください。文字列の終わりに達した場合は、を挿入しないでください。

  3. 最後に挿入された .ドット)の位置を見つけて、他のすべての.ドット)を削除します。

結果は1234.99という数字になります。

于 2012-08-10T08:56:23.223 に答える