0

これは私の最初の投稿です。私の質問に問題なく答えられることを願っています。文字列が有効な JSON かどうかを検出する関数を作成したいと考えています。ここで良いトピックを既に読みました (文字列が PHP で JSON であるかどうかを確認する最も速い方法は? ) ですが、この関数は JSON 以外の多くの入力を取得するため、最初の文字のチェック機能を追加したいと考えました。しかし、それは失敗し続けます、私には理由がわかりません...

これまでに書いた関数は次のとおりです。

function isJson($string){
    $string = trim($string);
    vardump($string);  //for debugging
    if($string[0]!='{'||$string[0]!='['){ //check for first char
      echo("{$string[0]}!={ OR {$string[0]}!=["); //this actually prints {!={ OR {!=[ every time it comes across valid JSON...
      return false;
    }
    if(json_decode($string)==true)return true;
    else return false;
    }

私を狂わせ始めているので、これを手伝ってくれませんか?前もって感謝します!

4

2 に答える 2

0

文字列が有効な Json でない場合、json_encode は false を返します。

function isValidJson($string) {
    if (json_encode($string) === false) {
        return false;
    }
    return true;
}
于 2013-05-30T15:34:47.720 に答える