我的编程空间,编程开发者的网络收藏夹
学习永远不晚

api接口对接如何实现,php如何对接api

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

api接口对接如何实现,php如何对接api

这篇文章来分享下api接口对接如何实现,还有源码,希望对新手有所帮助。

什么是API?

我的回答:API( 应用程序编程接口):一般来说,这是一套明确定义的各种软件组件之间的通信方法。

什么是API?我们不妨用一个小故事展示出来:

研发人员A开发了软件A,研发人员B正在研发软件B。

有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?

研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数;你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!

其中,API就是研发人员A说的那个函数。

进一步解释:

比如c语言的fopen()函数来打开一个文件,感觉非常简单。

但是操作到底层是非常复杂的,打开文件需要扫描硬盘,找到我文件位置,然后读取部分数据,并放进i/o缓存中,放进内存。

这些数据都是0,1序列,还要对照ASCII表或者unicode表翻译成字符,再在显示器上显示出来。如果这个过程让程序员来完成,简直就是个噩梦。不可能的事。

怎么办呢?

操作系统就想了一个很好的办法。它预先把复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库)程序员只需要简单的调用这些函数就可以用完成复杂的工作。

这些封装好的函数就叫做API。

getMessage();        $LabelArray[$content_tag_name] .= $e->getMessage();    }        break;    default:}echo serialize($LabelArray);function compose_article($title, $content) {    $separator = compose_separator();    return $title.$separator.$content;}function compose_separator() {    return PHP_EOL.'('.TITLE_SEPAR2.')'.PHP_EOL;}function fix_separator($article) {    return $article;}function get_wyc_article($str) {    global $url;    $separator = compose_separator();    $separator = str_replace(PHP_EOL, '', $separator);    $wyc = curl_request($url, array('wenzhang'=>$str));    $wyc_f = $wyc;    $wyc = fix_separator($wyc);    $wyc = explode($separator, $wyc);    if (isset($wyc[0])){        $wyc[0] = str_replace('', '', $wyc[0]);        $wyc[0] = str_replace('', '', $wyc[0]);        $wyc[0] = str_replace('目:', '', $wyc[0]);        $wyc[0] = str_replace('目:', '', $wyc[0]);        $wyc[0] = 'xx`xx'.$wyc[0];        $wyc[0] = str_replace('xx`xx题', '', $wyc[0]);        $wyc[0] = str_replace('xx`xx', '', $wyc[0]);    }    return $wyc;}function get_wyc_title($str) {    $title = get_wyc_article($str.PHP_EOL.PHP_EOL.PHP_EOL.$str.PHP_EOL.PHP_EOL.PHP_EOL.$str);    $title = fix_newline($title);    $title = explode(PHP_EOL, $title);    return $title[0];}function get_keywords($title, $contents) {    $url_kw = 'http://api-2.78tp.com/nlp/kws.php?appid=';    $kws = curl_request($url_kw, array(    'title'=>$title,    'len'=>100,    'text'=>$contents));    return $kws;}function remove_alt($contents) {    $contents = preg_replace('/alt=\"(.*)\"/', '', $contents);    return $contents;}function fix_title($contents) {    $punctuation_symbol = array('。', '?', ',', ':', ';', '、', '!',    '.',  '?',  ',',  ':',  ';', '!');     $contents = str_replace($punctuation_symbol, '', $contents);    return $contents;}function br2newline($contents) {    $contents = str_replace('
', PHP_EOL, $contents); $contents = str_replace('
', PHP_EOL, $contents); $contents = str_replace('
', PHP_EOL, $contents); $contents = str_replace('
', PHP_EOL, $contents); $contents = str_replace('
', PHP_EOL, $contents); $contents = str_replace('
', PHP_EOL, $contents); return $contents;}function newline2br($contnets) { $contnets = str_replace(PHP_EOL, "
", $contnets); $contnets = str_replace('


', '

', $contnets); return $contnets;}function delete_newline($contents) { $contents = fix_newline($contents); return $contents;}function reset_newline_win($contents) { // 优化换行符 $contents = str_replace("\r\n", "\n", $contents); $contents = str_replace("\r", "\n", $contents); $contents = str_replace("\n", PHP_EOL, $contents); return $contents;}function fix_newline($data) { $data = str_replace("\r", "\n", $data); while(strpos($data, "\n\n") !== false) { $data = str_replace("\n\n", "\n", $data); } $data = str_replace("\n", PHP_EOL, $data); return $data;}function clean_contents($contents) { $sa = new cleanHtml; $sa->allow = array( 'class="lazy" data-src' ); $sa->exceptions = array( 'img' => array( 'class="lazy" data-src', 'alt' ), //'a' => array( 'href', 'title' ), 'iframe'=>array('class="lazy" data-src','frameborder'), ); $str = $sa->strip( $contents ); return $str;}function xfm_strong_str_replace_once($search, $replace, $subject) { $firstChar = strpos($subject, $search); if($firstChar !== false) { $beforeStr = substr($subject,0,$firstChar); $afterStr = substr($subject, $firstChar + strlen($search)); return $beforeStr.$replace.$afterStr; } else { return $subject; }}//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookiesfunction curl_request($url,$post='',$cookie='', $returnCookie=0){ if (! extension_loaded('curl')) { file_exists('./ext/php_curl.dll') && dl('php_curl.dll'); // 加载扩展 } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); if (ini_get('open_basedir') == '' && strtolower(ini_get('safe_mode')) != 'on'){ curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); } curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 150); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ return $data; }}//echo $tag;// 计算中文字符串长度function utf8_strlen($string = null) {// 将字符串分解为单元preg_match_all("/./us", $string, $match);// 返回单元个数return count($match[0]);}function reg_escape( $str ) { $conversions = array( "^" => "\^", "[" => "\[", "." => "\.", "$" => "\$", "{" => "\{", "*" => "\*", "(" => "\(", "\\" => "\\\\", "/" => "\/", "+" => "\+", ")" => "\)", "|" => "\|", "?" => "\?", "<" => "\<", ">" => "\>" ); return strtr( $str, $conversions ); } class cleanHtml{ public $str = ''; public $allow = array(); public $exceptions = array(); public $ignore = array(); public function strip( $str ) { $this->str = $str; if( is_string( $str ) && strlen( $str ) > 0 ) { $res = $this->findElements(); if( is_string( $res ) ) return $res; $nodes = $this->findAttributes( $res ); $this->removeAttributes( $nodes ); } return $this->str; } private function findElements() { # Create an array of elements with attributes $nodes = array(); preg_match_all( "/<([^ !\/\>\n]+)([^>]*)>/i", $this->str, $elements ); foreach( $elements[1] as $el_key => $element ) { if( $elements[2][$el_key] ) { $literal = $elements[0][$el_key]; $element_name = $elements[1][$el_key]; $attributes = $elements[2][$el_key]; if( is_array( $this->ignore ) && !in_array( $element_name, $this->ignore ) ) $nodes[] = array( 'literal' => $literal, 'name' => $element_name, 'attributes' => $attributes ); } } # Return the XML if there were no attributes to remove if( !$nodes[0] ) return $this->str; else return $nodes; } private function findAttributes( $nodes ) { # Extract attributes foreach( $nodes as &$node ) { preg_match_all( "/([^ =]+)\s*=\s*[\"|']{0,1}([^\"']*)[\"|']{0,1}/i", $node['attributes'], $attributes ); if( $attributes[1] ) { foreach( $attributes[1] as $att_key => $att ) { $literal = $attributes[0][$att_key]; $attribute_name = $attributes[1][$att_key]; $value = $attributes[2][$att_key]; $atts[] = array( 'literal' => $literal, 'name' => $attribute_name, 'value' => $value ); } } else $node['attributes'] = null;$node['attributes'] = $atts; unset( $atts ); } return $nodes; } private function removeAttributes( $nodes ) { # Remove unwanted attributes foreach( $nodes as $node ) {# Check if node has any attributes to be kept $node_name = $node['name']; $new_attributes = ''; if( is_array( $node['attributes'] ) ) { foreach( $node['attributes'] as $attribute ) { if( ( is_array( $this->allow ) && in_array( $attribute['name'], $this->allow ) ) || $this->isException( $node_name, $attribute['name'], $this->exceptions ) ) $new_attributes = $this->createAttributes( $new_attributes, $attribute['name'], $attribute['value'] ); } } $replacement = ( $new_attributes ) ? "<$node_name $new_attributes>" : "<$node_name>"; $this->str = preg_replace( '/'. reg_escape( $node['literal'] ) .'/', $replacement, $this->str ); } } private function isException( $element_name, $attribute_name, $exceptions ) { if( array_key_exists($element_name, $this->exceptions) ) { if( in_array( $attribute_name, $this->exceptions[$element_name] ) ) return true; } return false; } private function createAttributes( $new_attributes, $name, $value ) { if( $new_attributes ) $new_attributes .= " "; $new_attributes .= "$name=\"$value\""; return $new_attributes; } } ?>

参考:如何对接伪原创API 更加通俗讲:别人写好的代码,或者编译好的程序,提供给你使用,就叫做api。

因为你使用了别人的代码( 或者程序)中的某个函数,类,对象,就叫做使用了某个api。

来源地址:https://blog.csdn.net/mynote/article/details/128738454

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

api接口对接如何实现,php如何对接api

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php如何实现快递鸟API接口

本篇文章给大家分享的是有关php如何实现快递鸟API接口,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。方法调用的代码实现//电商IDdefined(EBusinessID) o
2023-06-03

如何实现 Java 项目接口对接?(java项目接口如何对接)

在Java开发中,接口对接是一个常见且重要的任务。它涉及到不同系统或组件之间的通信和数据交换,确保各个部分能够协同工作。以下是实现Java项目接口对接的详细步骤:一、接口定义与设计明确接口需求
如何实现 Java 项目接口对接?(java项目接口如何对接)
Java2024-12-22

如何在 Java 中有效地实现 API 接口?(如何在Java中实现API接口)

在Java编程中,实现API接口是一项重要的技能。API(ApplicationProgrammingInterface)即应用程序编程接口,它定义了一组方法和约定,允许不同的软件组件进行交互和通信。以下是在Java中实现API接口的详细步骤:
如何在 Java 中有效地实现 API 接口?(如何在Java中实现API接口)
Java2024-12-15

php中如何写api接口

在PHP中编写API接口有许多不同的方法和框架可以使用。以下是一种常见的方法:定义路由:使用一个路由器或框架来定义API的路由。例如,可以使用Slim、Laravel或Symfony等框架,或者使用自定义的路由类。处理请求:根据路由定义的路
2023-10-24

如何用php调用URL短链接API接口

本篇内容介绍了“如何用php调用URL短链接API接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用说明接口地址:http://api.
2023-06-04

python如何封装api接口

在Python中,可以使用类和函数来封装API接口。下面是两种常见的封装方式:1. 使用类封装API接口:```pythonimport requestsclass MyAPI:def __init__(self, base_url):se
2023-10-11

Laravel如何制作API接口

这篇文章给大家分享的是有关Laravel如何制作API接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需要注意的是:API有它的具体用途,我们应该清楚它是干啥的。访问API的时候应该输入什么。访问过API过后应
2023-06-15

python如何调用api接口

要调用 API 接口,可以使用 Python 中的 requests 库。以下是一个简单的示例:```pythonimport requests# API 请求的 URLurl = 'https://api.example.com/endp
2023-09-07

Insomnia教程:如何使用PHP API接口

PHP API接口:如何使用InsomniaInsomnia是一款功能强大的API测试和调试工具,它能够帮助开发者快速、方便地测试和验证API接口,支持多种编程语言和协议,其中包括PHP。本文将介绍如何使用Insomnia测试PHP AP
Insomnia教程:如何使用PHP API接口
2024-01-22

php如何调用第三方api接口

要调用第三方API接口,可以使用PHP中的curl函数,示例如下:```php// 第三方API的URL$url = 'http://example.com/api';// 请求参数$data = ['param1' => 'value1'
2023-08-30

API接口有哪些不安全的因素?如何对接口进行签名?

本文主要介绍API 接口有不安全的因素 以及 常见的保证接口安全的方式 ,重点 实践如何对接口进行签名 。
接口安全2024-12-01

如何保证API接口安全?

当你的公司体量上来了时候,这个时候可能有一些公司开始找你进行技术对接了,转变成由你来提供api接口,那这个时候,我们应该如何设计并保证API接口安全呢?
API接口安全2024-12-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录