Seo tools

Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();



  • Categories

  • Ranking

  • Comments

  • Others


  • PHPのArrayをJsonに

    する必要があって、正規表現の練習ついでに作ってみたので
    ついでに公開してみます。

    function arrayToJson($string,$callback){
      $preg = “/(a|s|i|[^}]*?):(\d+)(?:[:](\{|(?:\\\”;|.)*?\”;)|[;])|(\})/”;
      if(!preg_match_all($preg,$string,$matches)){return false;}
      $i=0;
      foreach($matches[3] as $key=>$val){
        if(($i%2)==1){
          $matches[3][$key] = preg_replace(’[;$]‘,’:',$val);
        }else{
          $matches[3][$key] = preg_replace(’[;$]‘,’,',$val);
        }
        if(empty($val)){
          $matches[3][$key - 1] = preg_replace(’[,$]‘,”,$matches[3][$key - 1]);
          $matches[3][$key] = “},”;
        }else{
          $i++;
        }
      }
      array_unshift($matches[3],$callback.’(');
      array_pop($matches[3]);
      array_push($matches[3],’})’);
      return implode($matches[3]);
    }

    使い方

    はインクルードかなんかしてから

      $array[] = “いろいろ”:
      $string = serialize($array);  //arrayをserializeして
      print(arrayToJson($string,”jsonp”));  //functionに突っ込むだけ

      第一引数:変換する array
      第二引数:callback関数名

    とするだけです。

    出力結果は

    $array1['name9'] = “aaa1″;
    $array1['name6'] = “aaa2″;
    $array2['name1'] = “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1″;
    $array2['name2'] = “aaa2″;
    $array2['name3'] = $array1;
    $array2['name4'] = “aaa3″;

    jsonp
    (
      {
        ”name1″:”aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1″,
        ”name2″:”aaa2″,
        ”name3″:{”name9″:”aaa1″,”name6″:”aaa2″},
        ”name4″:”aaa3″
      }
    )

    となります。

    逆に json を php に

    はまだ考えてませんw

    普通に吐き出すのめんどいなーと思っていたら
    (pearとかいれてないので)
    phpのserlializeが結構近しいデータだったのを思い出して
    流用してみたかんじです。
    なので、1から作るっぽい逆側はめんどくさそうだなー


    2 Responses to “PHPのArrayをJsonに”

    1. ゆんころたん Says:

      Do You PHP? - PHPでJSON
      http://www.doyouphp.jp/sample/sample_xml_json.shtml

      php-json は PHP5.2.0から標準だそうです

    2. Jakk Says:

      情報提供ありがとうございます。

      PHP5からはXMLといいJSONといい
      出力系統の技術に便利な機能がたくさんありますね。
      そういうのは使いこなして行きたいですね!

    Leave a Reply

    2008/11/22 02:51:37