修改价格变量

时间:2011-03-18 09:05:57

标签: php

我正在尝试修改表单中的变量。 我想摆脱任何“,”但保持“。”而将其更改为“%2e”

$price = '6,000.65';

//$price = preg_replace('.', '%2e', $price);
$price = urlencode($price);

echo $price;

3 个答案:

答案 0 :(得分:1)

这是您问题的确切结果:

$price = str_replace(',', '', $price);
$price = str_replace('.', '%2e', $price);
echo $price;

但你为什么要对它进行urlencode ...?如果要删除不允许的字符(除了数字和点之外的所有字符),请使用下一个函数:

$price = preg_replace('/[^0-9.]/', '', $price);
// OP requested it...
$price = str_replace('.', '%2e', $price);
echo $price;

或者,您可以将字符串转换为浮点数,并使用number_format()对其进行格式化。

// note that numbers will be recognised as much as possible, but strings like `1e2`
// will be converted to 100. `1x2` turns into `1` and `x` in `0` You might want
// to apply preg_replace as in the second example
$price = (float)$price;
// convert $price into a string and format it like nnnn.nn
$price = number_format("$price", 2, '.', '');
echo $price;

第三种选择,以类似的方式工作。 %sprintf的特殊字符,标记了会话规范。 .2告诉它有两位小数,f告诉它是一个浮点数。

$price = sprintf('%.2f', $price);
echo $price;
// printf combines `echo` and `sprintf`, the below code does the same
// except $price is not modified
printf('%.2f', $price);

参考文献:

答案 1 :(得分:0)

http://php.net/manual/en/function.str-replace.php

$newPhrase = str_replace($findWhat, $replaceWith, $searchWhere);

所以在你的情况下:

$newPrice = str_replace(",", "", $price);

答案 2 :(得分:0)

$price = '6,000.65';
$price     = str_replace(',','',str_replace('.', '%2e',&$price));

$price = urlencode($price);