- Contract.php: 返回合约账户余额(balance_contract) - My.php: 地址管理增加BTC/ETH - AppContract.php: 一键平仓(closeall) - AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2) - site.php: 手续费减半(0.018→0.009) - agent_permission_setup.sql: 代理权限SQL - crypto_news_crawler.py: 新闻自动采集脚本
317 lines
9.4 KiB
PHP
Executable File
317 lines
9.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\api\controller;
|
|
|
|
use app\common\controller\Api;
|
|
use think\Db;
|
|
use think\Config;
|
|
/**
|
|
* 批量翻译接口
|
|
*/
|
|
class Fanyi extends Api
|
|
{
|
|
// 无需登录的接口,*表示全部
|
|
protected $noNeedLogin = ['*'];
|
|
// 无需鉴权的接口,*表示全部
|
|
protected $noNeedRight = ['*'];
|
|
|
|
public function test()
|
|
{
|
|
// 自动检测 auto 中文 zh 英语 en
|
|
// 粤语 yue 文言文 wyw 日语 jp
|
|
// 韩语 kor 法语 fra 西班牙语 spa
|
|
// 泰语 th 阿拉伯语 ara 俄语 ru
|
|
// 葡萄牙语 pt 德语 de 意大利语 it
|
|
// 希腊语 el 荷兰语 nl 波兰语 pl
|
|
// 保加利亚语 bul 爱沙尼亚语 est 丹麦语 dan
|
|
// 芬兰语 fin 捷克语 cs 罗马尼亚语 rom
|
|
// 斯洛文尼亚语 slo 瑞典语 swe 匈牙利语 hu
|
|
// 繁体中文 cht 越南语 vie 柬埔寨 hkm
|
|
$from = "auto";
|
|
$to = "pt";//de//it//jp//kor//may
|
|
|
|
$array = [
|
|
'请输入正确的地址' => '請輸入正確的地址',
|
|
'请输入正确的数量' => '請輸入正確的數量',
|
|
'请输入交易密码' => '請輸入交易密碼',
|
|
'请输入验证码' => '請輸入驗證碼',
|
|
'请选择提币的种类' => '請選擇提幣的種類',
|
|
'手机验证码不正确' => '手機驗證碼不正確',
|
|
'交易密码错误' => '交易密碼錯誤',
|
|
'操作频繁' => '操作頻繁',
|
|
'提币限额为' => '提幣限額為',
|
|
'余额不足' => '餘額不足',
|
|
'提交成功' => '提交成功',
|
|
'系统繁忙' => '系統繁忙',
|
|
'请输入备注' => '請輸入備註',
|
|
'抱歉,改地址信息不存在' => '抱歉,改地址資訊不存在',
|
|
'请选择正确的地址' => '請選擇正確的地址',
|
|
'请输入转入地址' => '請輸入轉入地址',
|
|
'请输入转入数量' => '請輸入轉入數量',
|
|
'请输入交易编号' => '請輸入交易編號',
|
|
'交易编号无效' => '交易編號無效',
|
|
'提交成功,请等待审核' => '提交成功,請等待稽核',
|
|
'请输入正确的互转用户' => '請輸入正確的互轉用戶',
|
|
'账户不存在' => '帳戶不存在',
|
|
'互转通道已关闭' => '互轉通道已關閉',
|
|
'互转限额为' => '互轉限額為',
|
|
'请完成实名' => '請完成實名',
|
|
'不可同类型划转' => '不可同類型劃轉',
|
|
'请输入有效数量' => '請輸入有效數量',
|
|
'改币种不支持划转' => '改幣種不支持劃轉',
|
|
'请选择正确划转类型' => '請選擇正確劃轉類型',
|
|
'划转成功' => '劃轉成功',
|
|
'类型错误' => '類型錯誤',
|
|
];
|
|
//var_dump($array);exit;
|
|
$num = 0;
|
|
foreach ($array as $key => $value) {
|
|
$key_arr[$key] = $num;
|
|
$num++;
|
|
}
|
|
|
|
$str = implode("\r\n", $array);
|
|
$res = $this->translate($str,$from,$to);
|
|
if(isset($res['trans_result'])){
|
|
$resl = $res['trans_result'];
|
|
}else{
|
|
$this->error("执行错误",$res);
|
|
}
|
|
foreach ($resl as $key => $value) {
|
|
// $new_arr[] = ucfirst($value['dst']);
|
|
$new_arr[] = $value['dst'];
|
|
}
|
|
// var_dump($new_arr);exit;
|
|
|
|
foreach ($key_arr as $key => $value) {
|
|
$key_arr[$key] = $new_arr[$value];
|
|
}
|
|
var_export($key_arr);exit;
|
|
$this->success("ok",$key_arr);
|
|
}
|
|
|
|
public function test2()
|
|
{
|
|
ignore_user_abort();
|
|
set_time_limit(0);
|
|
$from = "zh";
|
|
$to = "ara";
|
|
|
|
$array = [
|
|
"loadMore" => '
|
|
text3:"我的投资记录",
|
|
text4:"单笔限额",
|
|
text5:"周期",
|
|
text6:"天",
|
|
text7:"日收益率",
|
|
text8:"立即投资",
|
|
text9:"可用余额",
|
|
text10:"起投金额",
|
|
text11:"最大投资",
|
|
text12:"发布周期",
|
|
text13:"日利率",
|
|
text14:"投资金额",
|
|
text15:"请输入投资金额",
|
|
text16:"交易密码",
|
|
text17:"请输入交易密码",
|
|
text18:"项目规则",
|
|
text19:"项目名称",
|
|
text20:"还款方式",
|
|
text21:"日结利息,到期返本",
|
|
text22:"总利率",
|
|
text23:"收益说明",
|
|
text24:"投资记录",
|
|
text25:"产品名称",
|
|
text26:"投资状态",
|
|
text27:"已结束",
|
|
text28:"释放中",
|
|
text29:"投资时间",
|
|
text30:"查看详情",
|
|
text31:"投资详情",
|
|
text32:"累计收益",
|
|
text33:"累计收益天数",
|
|
text34:"数量",
|
|
text35:"时间"',
|
|
|
|
];
|
|
//
|
|
foreach ($array as $key => $value) {
|
|
$test1 = explode(",", $value);
|
|
$array[$key] = $test1;
|
|
}
|
|
// var_dump($array);exit;
|
|
foreach ($array as $key => $value) {
|
|
$new_value = [];
|
|
foreach ($value as $ke => $va) {
|
|
$va = str_replace(array("\r\n", "\r", "\n"," "," "), "", $va);
|
|
$keys = explode(":", $va);
|
|
// var_dump($keys);
|
|
$new_value[$keys[0]] = $keys[1];
|
|
}
|
|
$array[$key] = $new_value;
|
|
}
|
|
// var_dump($array);exit;
|
|
|
|
foreach ($array as $key => $value) {
|
|
$num = 0;
|
|
$key_arr = [];
|
|
foreach ($value as $ke => $va) {
|
|
$key_arr[$ke] = $num;
|
|
$num++;
|
|
}
|
|
// var_dump($value);exit;
|
|
|
|
$str = implode("\r\n", $value);
|
|
$str = str_replace("'","", $str);
|
|
// var_dump($str);exit;
|
|
$res = $this->translate($str,$from,$to);
|
|
// var_dump($res);exit;
|
|
if(isset($res['trans_result'])){
|
|
$resl = $res['trans_result'];
|
|
}else{
|
|
$this->error("执行错误",$res);
|
|
}
|
|
$new_arr = [];
|
|
foreach ($resl as $ke => $va) {
|
|
$new_arr[] = $va['dst'];
|
|
}
|
|
// if($key=="index"){
|
|
// var_dump($key_arr);exit;
|
|
// }
|
|
// var_dump($new_arr);exit;
|
|
|
|
foreach ($key_arr as $ke => $va) {
|
|
// if(!isset($new_arr[$va])){
|
|
// var_dump($key_arr);
|
|
// var_dump($new_arr);exit;
|
|
// }
|
|
$key_arr[$ke] = $new_arr[$va];
|
|
}
|
|
// var_dump($key_arr);exit;
|
|
$str = "";
|
|
foreach ($key_arr as $ke => $va) {
|
|
$va = str_replace(array("'", "\""), "", $va);
|
|
$va = ucfirst($va);
|
|
$str .= $ke.":'".$va."',\r\n";
|
|
}
|
|
// var_dump($str);exit;
|
|
$array[$key] = $str;
|
|
sleep(1);
|
|
}
|
|
print_r($array);exit;
|
|
$this->success("ok",$key_arr);
|
|
}
|
|
|
|
//翻译入口
|
|
public function translate($query, $from, $to)
|
|
{
|
|
$url = "http://api.fanyi.baidu.com/api/trans/vip/translate";
|
|
$appid = "20180212000122437";
|
|
$sec_key = "e6vQUYjgnYeroJZemtRv";
|
|
|
|
$args = array(
|
|
'q' => $query,
|
|
'appid' => $appid,
|
|
'salt' => rand(10000,99999),
|
|
'from' => $from,
|
|
'to' => $to,
|
|
|
|
);
|
|
$args['sign'] = $this->buildSign($query, $appid, $args['salt'], $sec_key);
|
|
$ret = $this->call($url, $args);
|
|
$ret = json_decode($ret, true);
|
|
return $ret;
|
|
}
|
|
|
|
//加密
|
|
public function buildSign($query, $appID, $salt, $secKey)
|
|
{/*{{{*/
|
|
$str = $appID . $query . $salt . $secKey;
|
|
$ret = md5($str);
|
|
return $ret;
|
|
}/*}}}*/
|
|
|
|
//发起网络请求
|
|
public function call($url, $args=null, $method="post", $testflag = 0, $timeout = 10, $headers=array())
|
|
{/*{{{*/
|
|
$ret = false;
|
|
$i = 0;
|
|
while($ret === false)
|
|
{
|
|
if($i > 1)
|
|
break;
|
|
if($i > 0)
|
|
{
|
|
sleep(1);
|
|
}
|
|
$ret = $this->callOnce($url, $args, $method, false, $timeout, $headers);
|
|
$i++;
|
|
}
|
|
return $ret;
|
|
}/*}}}*/
|
|
|
|
public function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = 10, $headers=array())
|
|
{/*{{{*/
|
|
$ch = curl_init();
|
|
if($method == "post")
|
|
{
|
|
$data = $this->convert($args);
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
curl_setopt($ch, CURLOPT_POST, 1);
|
|
}
|
|
else
|
|
{
|
|
$data = $this->convert($args);
|
|
if($data)
|
|
{
|
|
if(stripos($url, "?") > 0)
|
|
{
|
|
$url .= "&$data";
|
|
}
|
|
else
|
|
{
|
|
$url .= "?$data";
|
|
}
|
|
}
|
|
}
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
if(!empty($headers))
|
|
{
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
|
}
|
|
if($withCookie)
|
|
{
|
|
curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);
|
|
}
|
|
$r = curl_exec($ch);
|
|
curl_close($ch);
|
|
return $r;
|
|
}/*}}}*/
|
|
|
|
public function convert(&$args)
|
|
{/*{{{*/
|
|
$data = '';
|
|
if (is_array($args))
|
|
{
|
|
foreach ($args as $key=>$val)
|
|
{
|
|
if (is_array($val))
|
|
{
|
|
foreach ($val as $k=>$v)
|
|
{
|
|
$data .= $key.'['.$k.']='.rawurlencode($v).'&';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$data .="$key=".rawurlencode($val)."&";
|
|
}
|
|
}
|
|
return trim($data, "&");
|
|
}
|
|
return $args;
|
|
}
|
|
|
|
} |