PHP,在发布到MySQL之前删除货币符号

时间:2011-02-07 17:45:24

标签: php mysql

将£符号发布到我的数据库时出现问题似乎在它之前添加了一些奇怪的字符。我已经决定最好的办法就是在符号进入数据库之前去除符号,然后在读取数据时再将其添加回来。

是否有一个简单的PHP函数将接受我的$变量,在发送之前取出该特定字符,然后创建一个新的$ variable_new,我可以将其发送给数据库。

谢谢,Jonny

5 个答案:

答案 0 :(得分:4)

这应该是你要找的。

$variable_new = str_replace('£','',$variable);

答案 1 :(得分:1)

最简单(也是最好)的解决方案可能是让您的角色编码正确。首先确保你有网络浏览器发送你的东西在utf-8

然后确保您的数据库存储utf-8或编码ignostic。我知道MySQL关心字符编码,如果你的字符集不对,那么转换就会发生(在某些地方,在PHP和/或MySQL中)。

我把:AddDefaultCharset UTF-8

在我的.htaccess文件中为所有网站确保所有数据都以UTF-8发送给我

答案 2 :(得分:1)

您可以在查询中使用SUBSTRING函数

SUBSTRING(fieldName FROM 1)

或退房:

知道如何更改数据库的charset以支持符号。

答案 3 :(得分:0)

我会使用string replace作为快速解决方案,但理想情况下我绝不会首先将符号添加到变量中。

$newvar = str_replace('£', '', $oldvar);

答案 4 :(得分:0)

您可以随时使用str_replace(),也可以使用preg_replace替换所有非数字/点/逗号字符。但是,我不认为任何一个是最好的解决方案。

我认为最好改变您的脚本,以便首先将符号添加到数值上。尽管如此,请跟踪符号,并将其存储在数据库的单独列中,以便了解所使用的货币。拥有严格的数值可以让您(更轻松地)做更多您将来可能想要的事情。