PHP JSON Parser
PHP5.2から、php-jsonのJSON encoder/decoderが最初から組み込まれるようになった。あら、これは便利!という、ありきたりな話はしなくって、このphp-jsonのソースに含まれる、JSON_parser.hについて。
中身はこんなの。(PHP5組み込みもPECLも同じ)
/* JSON_checker.h */ #include "php.h" #include "ext/standard/php_smart_str.h" extern int JSON_parser(zval *z, unsigned short p[], int length, int assoc TSRMLS_DC);
なんで、コメントのファイル名違うんだろ。。というのはおいておいて、extern宣言されており、外部のExtensionモジュールから、C言語レベルで、この関数を呼び出すことができ、JSON文字列からzval配列への変換ができます。
ただ、なんでだろうと思うことは、その逆のPHP配列→JSON文字列への変換は、externされていないので呼び出せないこと。こちらだけ分けられてるのには何か意図があるのかなぁ。。