3

現在、私が知っている唯一のグローバルPHPコマンドは次のとおりです。

<?=$text_items?>

これは唾を吐きます:

1 item(s) - £318.75

値を取得したい318.75ので、現時点では置換を試みていますが、すべてがスムーズに機能していません。

$short = $text_items;
$short = str_replace("£", "", $short);
$short = str_replace("&pound;", "", $short);
$short = str_replace("-", "", $short);
$short = str_replace("&ndash;", "", $short);
$short = str_replace(" ", "", $short);
$short = str_replace("-", "", $short);
$short = str_replace("ITEMS", "", $short);
$short = str_replace("(", "", $short);
$short = str_replace(")", "", $short);
$short = str_replace("item(s)", "", $short);
$short = str_replace("ITEM", "", $short);
4

1 に答える 1

2
$total = @floatval(end(explode('£', html_entity_decode($text_items))));
  • html_entity_decode&pound;に変更£
  • end(explode('£'£' '文字の後に文字列を与えています
  • 最後floatvalに、floatする文字列を評価しています。
  • @は、関数E_STRICTで定数を渡すために発生するバイパスエラーです。end()

実例


2番目の解決策は正規表現です。

preg_match_all('!\d+(?:\.\d+)?!', $text_items, $result);
echo $result[1];

実例

于 2012-08-23T16:26:23.927 に答える