在php变量中使用str_replace
我有一个SuiteRM实现,我想在发票中用文字打印数字。数字是货币格式的,因此带有逗号(,)。当我试图用空字符串替换逗号时,它根本不起作用。事实上,在下面的几行中,没有任何字符被替换在php变量中使用str_replace,php,str-replace,suitecrm,variable-variables,Php,Str Replace,Suitecrm,Variable Variables,我有一个SuiteRM实现,我想在发票中用文字打印数字。数字是货币格式的,因此带有逗号(,)。当我试图用空字符串替换逗号时,它根本不起作用。事实上,在下面的几行中,没有任何字符被替换 //Value here is 10,720.00 $number = "\$" . $variableName . "_total_amount"; $newValueTemp = str_replace(",","",$number); //Its still 10,720.00 after this $ne
//Value here is 10,720.00
$number = "\$" . $variableName . "_total_amount";
$newValueTemp = str_replace(",","",$number);
//Its still 10,720.00 after this
$newValueTemp = str_replace("0","",$number);
//Its still 10,720.00 after this. So basically nothing is getting replace.
这和变量的变量有关吗 您使用的变量错误:
$number = "\$" . $variableName . "_total_amount";
将给您留下$number
作为字符串的“$XYZ_total_amount”
。要使其成为变量,您应该:
$number = $variableName."_total_amount";
然后使用
$$number
获取值。您对货币模块有什么想法?如果没有,请阅读以下内容,并希望符合Suite/SugarCRM标准的内容能给您带来更好的结果:
检查路径处的bean文件:modules/currences/Currency.php
查找函数unformat_number
并研究其代码。这将让您了解SuiteRM中货币格式的工作原理
如果您希望在代码中使用“货币”功能,则以下代码将对您有所帮助:
<?php
require_once "modules/Currencies/Currency.php";
$unformated_number = format_number($number);
var\u dump($number)
并查看它不是您所认为的……您是否回显了您的$number
并确保它确实是10720.00?我们做到了。我还有另外两位同事也被这件事弄糊涂了。当我们打印它时,回显它。。实际上,你需要什么样的输出呢?它应该是10720.00。我不明白为什么人们如此傲慢,对这件事投反对票。我最近两天就有这个问题了。在用尽了所有的选择之后,我来到了这里。我真的很沮丧。将变量名打印为“$aos\u发票\u总金额”,我认为这就是问题所在。这是SuiteRM zend framework中名为generatePdf.php的文件。这是一个相当“基本”的PHP,不确定SuiteRM如何/是否能与之相融合。听到这个消息很难过。对不起,我再也帮不了你了,谢谢你。SuiteRM社区也没有那么大的帮助。不过祝你好运