0

json_encodeで生成しているjson文字列でこの問題が発生しています。これは入力です:

stdClass Object
(
[titles] => stdClass Object
    (
        [nl] => test
        [en] => test
    )

[contents] => stdClass Object
    (
        [nl] => <p>\n   test</p>\n
        [en] => <p>\n   test</p>\n
    )

[languages] => stdClass Object
    (
        [0] => nl
        [1] => en
    )

)

そして、このSQLステートメントを使用してこれをデータベースに配置します。

INSERT INTO `pages`
                    (`title`, `content`, `lang`)
                    VALUES('{"nl":"test","en":"test"}', '{"nl":"<p>\\n\ttest<\/p>\\n","en":"<p>\\n\ttest<\/p>\\n"}', '{"0":"nl","1":"en"}')

私が見る限り、問題はありません。すべてデータベースに保存されており、問題はありません。

次に、コンテンツに対してこれを取得する出力を取得しようとします。

{"nl":"<p>n test</p>n","en":"<p>n   test</p>n"}

その結果:

(
[id] => 10
[title] => stdClass Object
    (
        [nl] => test
        [en] => test
    )

[content] => 
[lang] => stdClass Object
    (
        [0] => nl
        [1] => en
    )

[created] => 2012-10-24 11:49:52
)

したがって、私のjson文字列は無効です。これはどのように可能ですか?何を間違えたのか本当にわかりません。

4

1 に答える 1

0

ああ!あなたが正しい!それを考えないのは愚かなことですが、私は常にSELECTステートメントに関数を使用しています。このコードでは、何かが含まれてstripslashes()いるためにjson文字列が無効\nになっているようです。ありがとうございました!

于 2012-10-26T14:22:44.983 に答える