当前代码的相关部分:
$xml=simplexml_load_file($file);
$number=$xml->data->value;
imagettftext($image,$size,$angle,$x,$y,$colour,$font,$number);
这样做的目的是显示存储在xml文件中的值,该文件当前按原样工作。然而,更大的数字有点像眼睛。我认为number_format会解决这个问题,所以我试过了:
$xml=simplexml_load_file($file);
$number=$xml->data->value;
imagettftext($image,$size,$angle,$x,$y,$colour,$font,number_format($number));
和
$xml=simplexml_load_file($file);
$number=number_format($xml->data->value);
imagettftext($image,$size,$angle,$x,$y,$colour,$font,$number);
和
$xml=simplexml_load_file($file);
$number=$xml->data->value;
$number=number_format($number);
imagettftext($image,$size,$angle,$x,$y,$colour,$font,$number);
在所有三种情况下,我试图生成的图像上不会显示任何数字。就像我说的那样,没有number_format就可以正常工作。 xml文件的结构如下:
<xmldata>
<data>
<value>123456</value>
</data>
</xmldata>
答案 0 :(得分:2)
PHP不是黑盒子,因此您可以(并且应该)检查您的变量。您可以安装debugger或dump them to screen。您还需要启用完整的错误报告,因为您的代码应该触发您没有看到的警告:
警告:number_format()期望参数1为double,给定对象
我会跳几步并分享一个精心编写的片段:
object(SimpleXMLElement)#4 (1) {
[0]=>
string(6) "123456"
}
int(246912)
NULL
string(7) "246,912"
除了警告,它打印:
number_format()
解释:
大多数SimpleXML方法返回的对象在转换为字符串时,无论是隐式还是显式,都会显示相应的节点/属性值。
number_format((string)$value)
不会转换为字符串,因为它需要一个数字。
修正:
{{1}}