php apidoc生成接口文档示例

 更新时间:2016年11月25日 15:30  点击:2009
下面我们来看一篇关于php apidoc生成接口文档示例,希望这篇文章能够给各位带来帮助,具体的步骤细节如下文介绍.

api 生成接口文档示例:

{

  "name": "9月份赠险领取分享活动微信接口",

  "version": "1.0.0",

  "description": "9月份赠险领取分享活动微信接口文档 (t=1) ",

  "sampleUrl" : "http://www.phpernote.com/"

}

另存文件名为:apidoc.json

apidoc -i 要生成文档的项目目录 -o 接口文件的生成目录

接口代码文件代码如下:

<?php
/**
 * @api {post} /news/lists 新闻信息列表
 * @apiVersion 1.0.0
 * @apiName lists
 * @apiGroup User
 * @apiPermission 登录用户
 *
 * @apiDescription 用户登录后进入该页面,将显示新闻信息列表
 *
 * @apiSampleRequest /v1/news/lists
 *
 * @apiSuccess (返回值) {string} id 主键ID
 * @apiSuccess (返回值) {string} name 客户姓名
 * @apiSuccess (返回值) {string} user_head_img 客户头像
 * @apiSuccess (返回值) {integer} sex 性别:0-未设置,1-男,2-女
 * @apiSuccess (返回值) {string} demand 客户需求
 *
 * @apiSuccessExample {json} 成功示例:
 * {"code": 1,"msg": "","data": {"id": "57b3cdb46b787","name": "余浩苗","user_head_img": "userHead/2016-08-18/1034587522576.jpg","sex": "1","demand": "本人想买保险,请速联系!"}}
 *
 * @apiErrorExample (json) 错误示例:
 *     {"code":-1,"msg":"密码错误","data":{}}
 */

///////////////////////////////////////

/**
 * @api {post} /news/rob 抢客户
 * @apiVersion 1.0.0
 * @apiName rob
 * @apiGroup User
 * @apiPermission 登录用户
 *
 * @apiDescription 抢客户
 *
 * @apiParam {string} id 主键ID
 *
 * @apiSampleRequest /v1/news/rob
 *
 * @apiSuccessExample {json} 成功示例:
 * {"code":1,"msg":"","data":{}}
 *
 * @apiErrorExample (json) 错误示例:
 *     {"code":-1,"msg":"错误信息","data":{}}
 */

///////////////////////////////////////
更多关于apidoc的用法请参考:http://apidocjs.com/

下面我们来看一篇关于file_get_contents()获取https出现这个错误Unable to find the wrapper “https”问题的解决办法.

file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did

解决办法一,如果你是用的服务器,可以参考这个办法,修改php配置文件(win主机),来支持https

在php.ini中找到并修改

    extension=php_openssl.dll
    allow_url_include = On

重启服务就可以了,如果你的是linux服务器,linux下的PHP,就必须安装openssl模块,安装好了以后就可以访了。

解决办法二,如果你用的不是服务器,你用的主机,你没法更改php的配置,你可以通过使用curl函数来替代file_get_contents函数,当然你的主机必须支持curl函数。

<?php

function getSslPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
echo getSslPage($_GET['url']);
?>

检查主机是否支持php的file_get_contents函数

讲一下代码存储为php文件,在空间运行,即可得出结果。

<?php
echo ‘Curl: ‘, function_exists(‘curl_version’) ? ‘Enabled’ : ‘Disabled’ . ‘<br />
file_get_contents: ‘, file_get_contents(__FILE__) ? ‘Enabled’ : ‘Disabled’;
?>
 

下面我们来看一篇关于file_get_contents url 含有特殊字符获取失败问题处理的问题,希望文章能够帮助到各位朋友.

file_get_contents 在文件名包含特殊符号的时候回遇到处理失败的情况,解决办法是使用urlencode函数处理下文件名。

<?php

$name='包含特殊符的文件名';
$name=urlencode($name);

$url = "http://phpff.com/{$name}.jpg";
$con = file_get_contents($url);
?>

知识扩充

file_get_contents()模拟referer,cookie, 使用proxy等等

参考代码

ini_set('default_socket_timeout',120);
ini_set('user_agent','MSIE 6.0;');
$context=array('http' => array ('header'=> 'Referer: http://www.baidu.com/', ),);
$xcontext = stream_context_create($context);
echo $str=file_get_contents('http://www.111cn.net/',FALSE,$xcontext);

下面是file_get_contents和curl两个函数同样功能的不同写法

file_get_contents函数的使用示例:

< ?php

$file_contents = file_get_contents(‘http://www.zoneself.org/’);

echo $file_contents;

?>
换成curl函数的使用示例:

< ?php

$ch = curl_init();

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, ‘http://www.ccvita.com’);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

echo $file_contents;

?>
利用function_exists函数来判断php是否支持一个函数可以轻松写出下面函数:

< ?php

function vita_get_url_content($url) {

if(function_exists(‘file_get_contents’)) {

$file_contents = file_get_contents($url);

} else {

$ch = curl_init();

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

}

return $file_contents;

}

?>

 
          其实上面的这个函数还有待商榷,如果你的主机服务商把file_get_contents和curl都关闭了,上面的函数就会出现错误。那最后的办法就得换空间或者在支持的空间上写接口,在不支持的空间上进行调用了。

在php中替换字符串我们要用到repalce但如果要在指定行号替换我们可以对策上面的一篇php根据行号替换字符串的例子,具体如下.

php要实现根据行号替换内容,使用str_replace这样的函数是无法实现的,可以先根据换行符把文本分割成数字,然后便利数组实现替换功能。

<?php
$url='z.txt';
$content=file_get_contents($url);
$contentArr=explode("\n",$content);
$ikey=0;
foreach($contentArr as &$val){
    if(strpos($val, '<!–nextpage–>') !== false){
        $val=$ikey.' '.$val;
        $ikey++;
    }
}
   
$content=implode("\n",$contentArr);
?>


补充

1. preg_replace()

$msg = preg_replace("/<style>.+<\/style>/is", "", $msg); -----删除<style></style>和中间的部分
$msg = preg_replace("/<[^>]+>/", "", $msg); -----是删除<>和中间的内容

i (PCRE_CASELESS)
如果设定此修正符,模式中的字符将同时匹配大小写字母。
s (PCRE_DOTALL)
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。


2. ereg()与eregi()

注: preg_match() 函数通常是比 ereg() 更快的替代方案

eregi("<body([^>]+)>(.+)</body>",$data,$b)----察看$data中是否有body标签。如果有,把参数赋值$b[0],中间部分赋值$b[1]。

bool ereg ( string pattern, string string [, array regs] )

int eregi ( string pattern, string string, array [regs] )

eregi()和 ereg() 类似,用法也相同。不同之处在于ereg()有区分大小写,eregi()与大小写无关。

[!--infotagslink--]

相关文章

  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • vue接口请求加密实例

    这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • SpringBoot接口接收json参数解析

    这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
  • C#简单了解接口(Interface)使用方法

    这篇文章主要介绍了C#简单了解接口(Interface)使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-08
  • PS中像素大小、文档大小的区别

    在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
  • Feign接口方法返回值设置方式

    这篇文章主要介绍了Feign接口方法返回值设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
  • C# Rx的主要接口深入理解

    这篇文章主要介绍了C# Rx的主要接口深入理解的相关资料,需要的朋友可以参考下...2020-06-25
  • vue设置全局访问接口API地址操作

    这篇文章主要介绍了vue设置全局访问接口API地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • php怎么写api接口?php写api接口的实例代码

    php怎么写api接口?本文介绍了php写api接口的实例代码,有兴趣的同学可以参考一下。 http://localhost/openUser.php?act=get_user_list&type=json在这里openUser.php...2017-07-06
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • vue配置多代理服务接口地址操作

    这篇文章主要介绍了vue配置多代理服务接口地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-08
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04