EOT;
echo "
 $description";
/**
 * 接口说明 & 接口参数
 */
echo <<
                接口说明
                
            接口参数
            
                
                    | 参数名字 | 类型 | 是否必须 | 默认值 | 其他 | 说明 | 
|---|
                
                
EOT;
$typeMaps = array(
    'string' => '字符串',
    'int' => '整型',
    'float' => '浮点型',
    'boolean' => '布尔型',
    'date' => '日期',
    'array' => '数组',
    'fixed' => '固定值',
    'enum' => '枚举类型',
    'object' => '对象',
);
foreach ($rules as $key => $rule) {
    $name = $rule['name'];
    if (!isset($rule['type'])) {
        $rule['type'] = 'string';
    }
    $type = isset($typeMaps[$rule['type']]) ? $typeMaps[$rule['type']] : $rule['type'];
    $require = isset($rule['require']) && $rule['require'] ? '必须' : '可选';
    $default = isset($rule['default']) ? $rule['default'] : '';
    if ($default === NULL) {
        $default = 'NULL';
    } else if (is_array($default)) {
        $default = json_encode($default);
    } else if (!is_string($default)) {
        $default = var_export($default, true);
    }
    $other = array();
    if (isset($rule['min'])) {
        $other[] = '最小:' . $rule['min'];
    }
    if (isset($rule['max'])) {
        $other[] = '最大:' . $rule['max'];
    }
    if (isset($rule['range'])) {
        $other[] = '范围:' . implode('/', $rule['range']);
    }
    if (isset($rule['source'])) {
        $other[] = '数据源:' . strtoupper($rule['source']);
    }
    $other = implode(';', $other);
    $desc = isset($rule['desc']) ? trim($rule['desc']) : '';
    echo "| $name | $type | $require | $default | $other | $desc | 
\n";
}
/**
 * 返回结果
 */
echo <<
            
            返回结果
            
                
                    | 返回字段 | 类型 | 说明 | 
|---|
                
                
EOT;
foreach ($returns as $item) {
	$name = $item[1];
	$type = isset($typeMaps[$item[0]]) ? $typeMaps[$item[0]] : $item[0];
	$detail = $item[2];
	
	echo "| $name | $type | $detail | 
";
}
echo <<
        
EOT;
/**
 * 异常情况
 */
if (!empty($exceptions)) {
    echo <<
异常情况
            
                
                    | 错误码 | 错误描述信息 | 
|---|
                
EOT;
    foreach ($exceptions as $exItem) {
        $exCode = $exItem[0];
        $exMsg = isset($exItem[1]) ? $exItem[1] : '';
        echo "| $exCode | $exMsg | 
";
    }
    echo <<
        
EOT;
}
/**
 * 返回结果
 */
echo <<
    请求模拟   
EOT;
echo <<
    
        | 参数 | 是否必填 | 值 | 
|---|
    
    
        
            | service | 必须 |  | 
EOT;
foreach ($rules as $key => $rule){
    $name = $rule['name'];
    $require = isset($rule['require']) && $rule['require'] ? '必须' : '可选';
    $default = isset($rule['default']) ? $rule['default'] : '';
    $desc = isset($rule['desc']) ? trim($rule['desc']) : '';
    $inputType = (isset($rule['type']) && $rule['type'] == 'file') ? 'file' : 'text';
    echo <<
            {$name} | {$require} | EOT;
}
echo << | 
    
EOT;
$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']) ? 'https://' : 'http://';
$url = $url . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost');
$url .= substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/') + 1);
echo <<
    
EOT;
/**
 * JSON结果
 */
echo <<
EOT;
/**
 * 底部
 */
$version = '孕妇哨';
echo <<
          温馨提示: 此接口参数列表根据后台代码自动生成,可将 ?service= 改成您需要查询的接口/服务
        
        © Powered  By {$version}