最土程序的api接口开发分析

2011-01-20 20:58 来源:www.chinab4c.com 作者:熊斌

      我们在使用最土程序的时候,为了让更多的团购导航站或者是联盟站收录我们的商品的时候。我们可以对最土程序二次开发很多接口出来.供其导航站或者是联盟站抓取数据,重要是他们提供标准的接口文档,我们就能很容易的根据他们的需求开发出对应的最土程序api接口

       我们可以看到在最土团购程序的根目录下,有个文件夹api,里面放的就是最土程序对外合作的api接口。其实也就是利用对方提供的api标准。来生成一个xml文件。

  比如我们可以看到api接口的baidu.php,里面生成的就是支持baidu团购程序的xml文件格式。通过Output::XmlBaidu($oa);来处理生成的,这个方法是通过includes/library/Output.class.php来负责处理的.

  我们分析起原理,不难发现。只要提供一个数据数组$array,按其key/value对出现封装.然后将其转化为xml格式.将通过该函数来处理,当然了。数据结构的生成需要最土程序数据库的一些操作来完成。

       static public function ArrayToXml($array, $level=0, $topTagName='result')
 {
  if ($topTagName) {
   $xml = str_repeat("\t",$level) . "<$topTagName>\n";
   $level++;
  }

  foreach ($array as $key=>$value) {
   if( is_numeric($key) ){
    $key = self::GetSubTagName($topTagName);
   }  

   if($value===false) $value='false';
   if($value===true) $value='true';

   if (is_array($value)) {
    $xml .= self::ArrayToXml($value,$level,$key);
   } else {
    if (htmlspecialchars($value) != $value) {
     $xml .= str_repeat("\t",$level)
      ."<$key><![CDATA[$value]]></$key>\n";
    } else {
     $xml .= str_repeat("\t",$level).
      "<$key>$value</$key>\n";
    }
   }
  }

  if ($topTagName) {
   $xml .= str_repeat("\t",($level-1)) . "</$topTagName>\n";
  }
  return $xml;
 }

    那很简单的道理,我们可以将任意一个接口解析,按其要求生成数组.比如生成baidu的接口.调用的方法是以下.

    static public function XmlBaidu($data=null, $error=0)
 {
  $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
  $xml .= self::ArrayToXml( $data, 0, 'urlset' );
  die( $xml );
 }
    

 最土程序的api制作也特别简单,只要我们熟悉上面的分析.我们就可以很方便的制造出接口.

   来源:http://www.chinab4c.com