Files

196 lines
4.6 KiB
PHP
Raw Permalink Normal View History

2025-01-11 14:16:20 +08:00
<?php
if (!function_exists('is_wechat')) {
/**
* 判断是否是微信访问.
*
* @return bool
*/
function is_wechat(): bool
{
return str_contains(\Jenssegers\Agent\Facades\Agent::getUserAgent(), 'MicroMessenger');
}
}
if (!function_exists('is_mobile')) {
/**
* 是否手机
*
* @return bool
*/
function is_mobile(): bool
{
$agent = new Jenssegers\Agent\Agent();
return $agent->isMobile();
}
}
if (!function_exists('json_success')) {
/**
* 成功
*
* @param mixed $message
* @param mixed $data
* @return void
*/
function json_success(mixed $message = '', mixed $data = []): void
{
if (is_string($message)) {
$result = [
'msg' => $message,
'data' => $data,
];
} else {
$result = [
'msg' => '',
'data' => $message,
];
}
$result['code'] = 0;
response()->json($result)->throwResponse();
}
}
if (!function_exists('json_page')) {
/**
* 分页
*
* @param $data
* @param mixed $pageData
* @param mixed $message
* @return void
*/
function json_page($data, mixed $pageData = [], mixed $message = ''): void
{
$pageData['total'] = method_exists($data, 'total') ? $data->total() : null;
$pageData['count'] = $data->count();
$pageData['page'] = $data->currentPage();
$pageData['per_page'] = $data->perPage();
$pageData['last'] = method_exists($data, 'lastPage') ? $data->lastPage() : null;
json_success($message, [
'page_info' => $pageData,
'page_data' => $data->toArray()['data'],
]);
}
}
if (!function_exists('json_error')) {
/**
* 失败
*
* @param mixed $message
* @param mixed $data
* @param int $code
* @return void
*/
function json_error(mixed $message = '', mixed $data = [], int $code = 1): void
{
$result = [
'code' => $code,
'msg' => $message,
'data' => $data,
];
response()->json($result)->throwResponse();
}
}
if (!function_exists('json_guest')) {
/**
* 失败 - 未登录
*
* @param mixed $message
* @param int $code
* @return void
*/
function json_guest(mixed $message = '未登录,请先登录', int $code = 99): void
{
json_error($message, [], $code);
}
}
if (!function_exists('json_result')) {
/**
* 结果
*
* @param mixed $message
* @param mixed $data
* @param int $code
* @return array
*/
function json_result(mixed $message = '', mixed $data = [], int $code = 0): array
{
return [
'code' => $code,
'msg' => $message,
'data' => $data,
];
}
}
if (!function_exists('url_to_uri')) {
/**
* 网址去除域名段 获取 url
*
* @param $url
* @return string|null
*/
function url_to_uri($url): ?string
{
if (!$url) {
return null;
}
$arr = parse_url($url);
if (isset($arr['scheme']) && isset($arr['host'])) {
$domains = [config('filesystems.disks.' . config('filesystems.default') . '.domain')];
$domain = $arr['scheme'] . '://' . $arr['host'];
if (in_array($domain, $domains)) {
$url = str_replace($arr['scheme'] . '://' . $arr['host'], '', $url);
$url = preg_replace('/!.*/', '', $url);
}
} elseif (!str_starts_with($url, '/')) {
$url = '/' . $url;
}
return $url;
}
}
if (!function_exists('uri_to_image_url')) {
/**
* 还原图片网址
*
* @param $uri
* @return string|null
*/
function uri_to_image_url($uri): ?string
{
if (!$uri) {
return null;
}
return config('filesystems.disks.' . config('filesystems.default') . '.domain') . url_to_uri($uri);
}
}
if (!function_exists('string_to_array')) {
/**
* 字符串转数组针对非0传值场景
*
* @param mixed $string 原始字符串
* @param bool $sort 是否重新排序
* @param string $separator 切割字符
* @return array
*/
function string_to_array(mixed $string, bool $sort = false, string $separator = ','): array
{
$arr = explode($separator, $string);
foreach ($arr as &$value) {
$value = trim($value);
}
$arr = array_filter($arr);
if ($sort) {
sort($arr);
}
return $arr;
}
}