2017-11-21 10 views
0

関連セクションを返しません。しかし、数字が大きいほど目障りです。私はをnumber_formatは、この問題を解決すると考えましたので、私が試した:PHPのを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); 

を3つのすべてのケースでは、何の数は、画像に表示されてしまうん私は生成しようとしています。私が言ったように、これはnumber_formatなしでうまく動作します。 xmlファイルは、そのように構成されています

<xmldata> 
    <data> 
     <value>123456</value> 
    </data> 
</xmldata> 
+2

をnumber_format()は常にNULL(およびエラー・ログ機能が有効になっていた場合には警告)この場合には、値を返します –

+0

intにあなたのxmlから値をキャストしてみまたはfloatを呼び出す前にnumber_format()(var_dump $ xml-> data-> value;実際に戻ってきたものを見るには、単純な要素オブジェクトでなければなりません) –

+0

var_dumpは500エラーになります。 – Hiigaran

答えて

2

PHPあなたが(とすべきである)あなたの変数を調べることができるようにブラックボックスではありません。 debuggerまたはdump them to screenをインストールできます。

警告::()をnumber_formatは、パラメータ1は、私が「

指定されたdouble、オブジェクトであることを期待あなたのコードは、あなたが見ていない警告をトリガする必要があるので、あなたはまた、完全なエラー報告を有効にする必要がありますいくつかの手順をジャンプして、慎重に構成スニペットを共有でしょう:

<?php 
$xml = simplexml_load_string('<xmldata> 
    <data> 
     <value>123456</value> 
    </data> 
</xmldata>'); 
$value = $xml->data->value; 
var_dump($value, 2*$value, number_format($value), number_format(2*$value)); 

さておき警告を、それが印刷します

object(SimpleXMLElement)#4 (1) { 
    [0]=> 
    string(6) "123456" 
} 
int(246912) 
NULL 
string(7) "246,912" 

説明:

  1. ほとんどのSimpleXML方法は、暗黙的または明示的に、文字列にキャストする場合、対応するノード/属性値を表示することをオブジェクトを返します。

  2. number_format()数値を期待しているため、文字列にキャストしません。

修正:

number_format((string)$value) 
+0

修正がうまくいったように見えます。エラー報告に関しては、通常、ほとんどの用途では簡単に行うことができますが、画像を生成するこの特定のケースでは、それらのエラーをどのように表示しますか?あなたはファイルに出力しますか? – Hiigaran

+1

私は通常、ソースコードを見るためにブラウザでCtrl + Uを押すだけです。 –

関連する問題