ExpinBot/app/Services/UserFun.php

82 lines
2.4 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Services;
class UserFun
{
public static function success($code = 200, $message = 'ok') {
return response()->json([
'code' => $code,
'message' => $message,
]);
}
public static function error($code = 500,$message = 'error') {
return response()->json([
'code' => $code,
'message' => $message,
]);
}
public static function Json2Arr($data, $prefix = '') {
// 如果傳進來的是字串,就 decode 一次
if (is_string($data)) {
$arr = json_decode($data, true);
if (!is_array($arr)) {
return []; // 無效 JSON回傳空陣列或你可自訂錯誤處理
}
} elseif (is_array($data)) {
$arr = $data;
} else {
return []; // 不是 JSON 字串也不是陣列,回傳空
}
$result = [];
foreach ($arr as $key => $value) {
$fullKey = $prefix === '' ? $key : "{$prefix}_{$key}";
if (is_array($value)) {
$result += self::Json2Arr($value, $fullKey);
} else {
$result[$fullKey] = $value;
}
}
return $result;
}
public static function CurlGet(string $url): array
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 设定请求网址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 回传结果而不是直接输出
$response = curl_exec($ch); // 执行请求
$err = curl_error($ch); // 错误信息
curl_close($ch); // 关闭连接
if ($err) {
return ['ok' => false, 'error' => $err];
}
return json_decode($response, true);
}
public static function CurlPost(string $url, array $data = []): array
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 設定請求網址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 回傳內容不直接輸出
curl_setopt($ch, CURLOPT_POST, true); // 啟用 POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // POST的資料
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
return ['ok' => false, 'error' => $err];
}
return json_decode($response, true);
}
}