在QRSpeed-第6课时-第六节-网络词库的测试用API(更多使用方法也看这里)中我开放了这个接口,详细的使用说明也在那里,然后有许多人来问我要源码,于是我就在这里开源了(本开源的代码可能不与测试API的代码同步,即本代码功能可能落后于测试API)。
GitHub开源:https://github.com/xiwangly2/math-API
PHP版本需>7.0
其实要实现这些数学计算很简单,直接引用PHP自带的Math函数,详见PHP 5 Math 函数-菜鸟教程。
然后用get方式传入变量,然后基础运算就自建函数,部分数学运算涉及到数值转换套上去即可。稍微复杂一点的就是要把这些集合在一起,并且不同的函数要用不同的判断(终于写完了)。

——图片来自QRSpeed-第6课时-第六节-网络词库。
QRSpeed词库目前还不支持浮点数的加减运算,也不支持高级运算,所以要依赖于其他的接口等等。
代码如下:
同样的,本源码也会以附件形式展现,见下面的附件(math.zip)(旧版本已丢失)。
(本文继承关联其他教程的协议。你们可以拿去用,但是不可以纯粹的搬砖修改,可以超链接分享,但是不允许小幅度二改并上传,引用这些东西去做其他的事情是可以的,还是那句老话:授人以鱼,不如授之以渔)
2020/4/29更新:(fixed版本修复了部分运算返回无结果的问题,见附件"math_fixed.zip")
2020/4/30更新:(见附件"math_2020_4_30.zip",累...现在已经不只是数学运算了,...)
2020/5/2更新:(见附件"math_2020_5_2.zip")
2020/5/7更新:(见附件"math_2020_5_7.zip")



拿走记得说一声啊……
GitHub开源:https://github.com/xiwangly2/math-API
PHP版本需>7.0
其实要实现这些数学计算很简单,直接引用PHP自带的Math函数,详见PHP 5 Math 函数-菜鸟教程。
然后用get方式传入变量,然后基础运算就自建函数,部分数学运算涉及到数值转换套上去即可。稍微复杂一点的就是要把这些集合在一起,并且不同的函数要用不同的判断(终于写完了)。

——图片来自QRSpeed-第6课时-第六节-网络词库。
QRSpeed词库目前还不支持浮点数的加减运算,也不支持高级运算,所以要依赖于其他的接口等等。
代码如下:
PHP:
<?php
/**
由xiwangly编写,用于访问该接口快速运算一些值,请保留著作权,还在不断改进中……
教程:https://www.lolichan.vip/threads/qrspeed-6.53/
http://域名/math.php?x=x的值&y=y的值&z=z的值&m=计算方式
*/
$x=$_GET["x"];
$y=$_GET["y"];
$z=$_GET["z"];
$m=$_GET["m"];
/**
if($x == "π")
{
$x="M_PI";
}
else if($y == "π")
{
$y="M_PI";
}
else if($z == "π")
{
$z="M_PI";
}
*/
function sa($x,$y)
{
$total=$x + $y;
return $total;
}
function ss($x,$y)
{
$total=$x - $y;
return $total;
}
function sm($x,$y)
{
$total=$x * $y;
return $total;
}
function sd($x,$y)
{
$total=$x / $y;
return $total;
}
function sr($x,$y)
{
$total=$x % $y;
return $total;
}
function s($x,$y)
{
$total=$x . $y;
return $total;
}
if($x == ""&$y == ""&$z == ""&$m == "")
{
$url="https://www.lolichan.vip/threads/qrspeed-6.53/";
header("Location: $url");
}
else if($m == "a")
{
echo sa($x,$y);
}
else if($m == "s")
{
echo ss($x,$y);
}
else if($m == "m")
{
echo sm($x,$y);
}
else if($m == "d")
{
echo sd($x,$y);
}
else if($m == "r")
{
echo sr($x,$y);
}
else if($m == "ss")
{
/**
if($z == "")
{
echo s($x,$y);
}
else
{*/
$and_sss=$x . $y . $z;
echo $and_sss;
// }
}
else if($m == "pow")
{
echo pow($x,$y);
}
else if($m == "abs")
{
echo abs($x);
}
else if($m == "acos")
{
echo acos($x);
}
else if($m == "acosh")
{
echo acosh($x);
}
else if($m == "asin")
{
echo asin($x);
}
else if($m == "asinh")
{
echo asinh($x);
}
else if($m == "atan")
{
echo atan($x);
}
else if($m == "atan2")
{
echo atan2($x,$y);
}
else if($m == "atanh")
{
echo atanh($x);
}
else if($m == "base")
{
echo base_convert($x,$y,$z);
}
else if($m == "bindec")
{
echo bindec($x);
}
else if($m == "ceil")
{
echo ceil($x);
}
else if($m == "cos")
{
$x=floatval($x);
echo cos($x);
}
else if($m == "cosh")
{
$x=floatval($x);
echo cosh($x);
}
else if($m == "decbin")
{
echo decbin($x);
}
else if($m == "dechex")
{
echo dechex($x);
}
else if($m == "decoct")
{
echo decoct($x);
}
else if($m == "deg2rad")
{
echo deg2rad($x);
}
else if($m == "exp")
{
echo exp($x);
}
else if($m == "expm1")
{
echo expm1($x);
}
else if($m == "floor")
{
echo floor($x);
}
else if($m == "fmod")
{
echo fmod($x,$y);
}
else if($m == "getrandmax")
{
echo rand($x,getrandmax());
}
else if($m == "hexdec")
{
echo hexdec($x);
}
else if($m == "hypot")
{
echo hypot($x,$y);
}
else if($m == "finite")
{
echo is_finite($x);
}
else if($m == "infinite")
{
echo is_infinite($x);
}
else if($m == "nan")
{
echo is_nan($x);
}
else if($m == "lcg")
{
echo lcg_value();
}
else if($m == "log"&$y == "")
{
echo log($x);
}
else if($m == "log")
{
echo log($x,$y);
}
else if($m == "log10")
{
echo log10($x);
}
else if($m == "log1p")
{
echo log1p($x);
}
else if($m == "max"&$z == "")
{
echo max($x,$y);
}
else if($m == "max")
{
echo max($x,$y,$z);
}
else if($m == "min"&$z == "")
{
echo min($x,$y);
}
else if($m == "min")
{
echo min($x,$y,$z);
}
else if($m == "mtgetrandmax")
{
echo mt_rand($x,mt_getrandmax());
}
else if($m == "mtrand")
{
echo mt_rand($x,$y);
}
else if($m == "mtsrand")
{
echo mt_srand($x);
}
else if($m == "octdec")
{
echo octdec($x);
}
else if($m == "pi")
{
echo (pi());
}
else if($m == "rad2deg")
{
echo rad2deg($x);
}
else if($m == "rand")
{
echo rand($x,$y);
}
else if($m == "round")
{
echo round($x);
}
else if($m == "sin")
{
$x=floatval($x);
echo sin($x);
}
else if($m == "sinh")
{
$x=floatval($x);
echo sinh($x);
}
else if($m == "sqrt")
{
echo sqrt($x);
}
else if($m == "srand")
{
echo srand($x);
}
else if($m == "tan")
{
$x=floatval($x);
echo tan($x);
}
else if($m == "tanh")
{
$x=floatval($x);
echo tanh($x);
}
else
{
echo "未知的表达";
}
?>
(本文继承关联其他教程的协议。你们可以拿去用,但是不可以纯粹的搬砖修改,可以超链接分享,但是不允许小幅度二改并上传,引用这些东西去做其他的事情是可以的,还是那句老话:授人以鱼,不如授之以渔)
2020/4/29更新:(fixed版本修复了部分运算返回无结果的问题,见附件"math_fixed.zip")
2020/4/30更新:(见附件"math_2020_4_30.zip",累...现在已经不只是数学运算了,...)
2020/5/2更新:(见附件"math_2020_5_2.zip")
2020/5/7更新:(见附件"math_2020_5_7.zip")



拿走记得说一声啊……
附件
最后编辑: