私はphp開発には比較的慣れていませんが、一般的なWeb開発には慣れていません。
私は次のphpファイルを持っています:
<?php
class dialogResult{
var $Message;
var $Title;
var $Height;
var $GenericData;
function __construct(){
$this->Height = 10;
}
}
header("Cache-Control: no-cache", true);
header("Content-type: application/json; charset=utf-8", true);
$dr = new dialogResult();
$dr->Message = "A Test Message encoded";
$dr->Height = 10;
$dr->GenericData = "Empty";
$dr->Title = "My Message";
echo(json_encode($dr));
?>
これにより、期待どおりにJSONデータが返されますが、クラスを別のファイルに移動してinclude、include_once、require、require_onceを追加すると、無効なJSONデータが返されます。なぜそうなるのか誰か教えてもらえますか?
このクラスを移動するだけでなく、ファイルが含まれているとデータが無効になります。
ありがとう、
キース
これがインクルードクラスです。私も削除してみましたか?>
<?php
class dialogResult{
var $Message;
var $Title;
var $Height;
var $GenericData;
function __construct(){
$this->Height = 10;
}
}
どこにも先頭または末尾のスペースはありません。返される「無効な」JSONは次のとおりです。
{"Message":"A Test Message encoded","Title":"My Message","Height":10,"GenericData":"Empty"}
JSONLintを使用して解析しようとすると、「予期しないトークン」が表示されます。もちろん、JSONLintに手動で入力すれば問題ありません。識別できない/JSONに表示されない文字があると思いますが、それを見つける方法がわかりません。