dujitang.jpg
研究了一段时间API了,不过现在还是不得要领,但是看着别人整的API好像也就那么回事,没有系统学习过一套语言,确实存在很多短板,甚至很多地方都需要查阅资料才能够理解。

今天先整一个非常简单的毒鸡汤API吧,这应该是很久以前的一个程序了,就是通过随机调用txt文本中的文字来实现毒鸡汤的展示,但是这个txt文本确实死的,需要自己去添加内容。现在加了一个采集,就可以实现自动采集的一个api了。

在这么强大的php面前,我居然还用这么老土的方法,小白果然是小白呀。

不过,我好像发现可以通过采集来实现自动添加txt的内容,这样一来,好像就可以实现整个流程了。虽然感觉是还是有点low,但是基本功能还算是成功了,至于其他什么的以后再慢慢完善吧。

首先api的代码如下所示:

<?php
    $counter = intval(file_get_contents("counter.dat"));  
     $_SESSION['#'] = true;  
     $counter++;  
     $fp = fopen("counter.dat","w");  
     fwrite($fp, $counter);  
     fclose($fp); 
 ?>

<?php
//获取句子文件的绝对路径
$path = dirname(__FILE__);
$file = file($path."/dujiyan.txt");
 //dujiyan.txt就是毒鸡汤的文本,一句话就一行

//随机读取一行
$arr  = mt_rand( 0, count( $file ) - 1 );
$content  = trim($file[$arr]);
 
//编码判断,用于输出相应的响应头部编码
if (isset($_GET['charset']) && !empty($_GET['charset'])) {
    $charset = $_GET['charset'];
    if (strcasecmp($charset,"gbk") == 0 ) {
        $content = mb_convert_encoding($content,'gbk', 'utf-8');
    }
} else {
    $charset = 'utf-8';
}
 
//格式化判断,输出js或纯文本
if ($_GET['encode'] === 'js') {
    echo "function binduyan(){document.write('" . $content ."');}";
}else if($_GET['encode'] === 'json'){
    header('Content-type:text/json');
    $content = array('text'=>$content);
    echo json_encode($content, JSON_UNESCAPED_UNICODE);
}else {
    echo $content;
}

其次就是采集的API了,


<?php
    $counter = intval(file_get_contents("counter.dat"));  
     $_SESSION['#'] = true;  
     $counter++;  
     $fp = fopen("counter.dat","w");  
     fwrite($fp, $counter);  
     fclose($fp); 
 ?>

<?php
//获取句子文件的绝对路径
$path = dirname(__FILE__);
$file = file($path."/binduyan.txt");
 
//随机读取一行
$arr  = mt_rand( 0, count( $file ) - 1 );
$content  = trim($file[$arr]);
 
//编码判断,用于输出相应的响应头部编码
if (isset($_GET['charset']) && !empty($_GET['charset'])) {
    $charset = $_GET['charset'];
    if (strcasecmp($charset,"gbk") == 0 ) {
        $content = mb_convert_encoding($content,'gbk', 'utf-8');
    }
} else {
    $charset = 'utf-8';
}
 
//格式化判断,输出js或纯文本
if ($_GET['encode'] === 'js') {
    echo "function binduyan(){document.write('" . $content ."');}";
}else if($_GET['encode'] === 'json'){
    header('Content-type:text/json');
    $content = array('text'=>$content);
    echo json_encode($content, JSON_UNESCAPED_UNICODE);
}else {
    echo $content;
}

这样只需要通过监控每天自动采集,显现毒鸡汤的api了。

代码已经添加到Gitee上了,大家可以看看,很简单的一个毒鸡汤api就可以实现了。

下面是一个演示说明

随机语录API请求方式

Method: Get

请求地址

https://api.anhaowu.com/api/yan/api.php

参数

charset//字符编码(gbk/utf-8)

encode//返回类型(text/js/json)

示例

https://api.anhaowu.com/api/yan/api.php?charset=utf-8
https://api.anhaowu.com/api/yan/api.php?encode=js


版权属于:安好屋

转载时须注明出处及本声明

微信公众号:阳光艺创站
最后修改:2020 年 01 月 16 日 04 : 22 PM
好吧,我穷的快要被消灭了。