0

関数を使用しているときに未定義の関数エラーが発生しjson_encode()ます。xml データを json データに変換する必要があります。私が使用しているコードは次のとおりです。

$xml = simplexml_load_string($retValue);
echo json_encode($xml);

私もこれを試しました:

$xml = simplexml_load_string($retValue);
$array = objectsIntoArray($xml);
$array = json_encode($array);
print_r($array);
die;

function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{

    $arrData = array();
    if (is_object($arrObjData)) {
        $arrObjData = get_object_vars($arrObjData);
    }
    if (is_array($arrObjData)) {
        foreach ($arrObjData as $index => $value) {
            if (is_object($value) || is_array($value)) {
                $value = objectsIntoArray($value, $arrSkipIndices);
            }
            if (in_array($index, $arrSkipIndices)) {
                continue;
            }
            $arrData[$index] = $value;
        }
    }
    return $arrData;
}

しかし、これobjectsIntoArray()json_encode()両方で関数の未定義エラーがスローされています。 $retValuexml データが含まれています。なぜこのエラーが発生するのかわかりません。私は何かが欠けていますか?私はphpにまったく慣れておらず、あまり認識していません。これに関して私を助けてください。

4

2 に答える 2

0

PHP で JSON 拡張機能が有効になっていないようです。PHP 5.2.0 以降では、JSON 拡張機能がバンドルされ、デフォルトで有効になっています。ただし、JSON を使用して PHP を構築することはできます。

phpinfo.php次のコードを使用して、というスクリプトを作成して、これに該当するかどうかを確認する必要があります。

<?php
    phpinfo();

ブラウザでスクリプトを開きます。jsonという名前のセクションが見つかるかどうかを確認します。また、PHP のバージョンも確認してください。

json support    enabled
json version    1.2.1

PHP 5.1.x を使用している場合は、pecl を使用して拡張機能をインストールします。それ以外の場合は、使用している OS (およびディストリビューション) と、PHP をどのようにインストールしたかをお知らせください。

PHP を自分でインストールしなかった場合は、システム管理者またはホスティング プロバイダーにお問い合わせください。

または、この純粋な PHP json ライブラリを使用できます。

于 2013-02-11T13:00:15.183 に答える
0

古いバージョンの php 4.3.1 を使用しているようです。またはsimplexml_load_string無効です。echo phpinfo(); で確認してください。

于 2013-02-11T13:04:18.093 に答える