2011-02-04 200 views
0

我有這樣的代碼:問題與str_replace()函數

var_dump(format_currency($product_tax = $prodotto->getFinalPrice() + $product->getTax())); 
var_dump(str_replace(" ", "", format_currency($product_tax = $prodotto->getFinalPrice() + $product->getTax()))); 

,並將其輸出這樣的:

string ' 333,88' (length=8) 
string ' 333,88' (length=8) 

爲什麼不工作ok了str_replace函數的功能?

問候

哈維

+2

Downvote ISN我的,但這是*糟糕的代碼來調試。請從format_currency調用中進行計算操作。 – 2011-02-04 11:27:40

+1

我不認爲format_currency是一個標準函數。你寫了嗎?它是如何工作的? – Merijn 2011-02-04 11:27:59

回答

1

嘗試使用trim - 空白空間可能不會實際上是一個空白 - 它可能是一些其他的事情。

var_dump(trim($yourString)); 
0

我假設你使用的是symfony。而不是試圖說明隱形人物(黑名單),這可能會根據默認文化而改變,爲什麼不簡單地將白名單?

echo preg_replace('/[^0-9\.,]/i', '', format_currency(...)); 

這將消除任何不是一個數字(0-9)逗號(,)或小數點(。)

0

您應該使用number_format()

$value = number_format($product_tax = $prodotto->getFinalPrice() + $product->getTax(), 2, ','); 
// the ',' will force the decimal charecter to be ',' 

var_dump($value) --> string '333,88' (length=7)