100 lines
2.1 KiB
PHP
100 lines
2.1 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
if (! function_exists('str_first_sentence')) {
|
|
function str_first_sentence($str)
|
|
{
|
|
// Split the string at ., !, or ?
|
|
$sentences = preg_split('/(\.|!|\?)(\s|$)/', $str, 2);
|
|
|
|
// Return the first part of the array if available
|
|
if (isset($sentences[0])) {
|
|
return trim($sentences[0]);
|
|
}
|
|
|
|
// If no sentence ending found, return the whole string
|
|
return $str;
|
|
}
|
|
|
|
}
|
|
|
|
if (! function_exists('is_empty')) {
|
|
/**
|
|
* A better function to check if a value is empty or null. Strings, arrays, and Objects are supported.
|
|
*
|
|
* @param mixed $value
|
|
*/
|
|
function is_empty($value): bool
|
|
{
|
|
if (is_null($value)) {
|
|
return true;
|
|
}
|
|
|
|
if (is_string($value)) {
|
|
if ($value === '') {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (is_array($value)) {
|
|
if (count($value) === 0) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (is_object($value)) {
|
|
$value = (array) $value;
|
|
|
|
if (count($value) === 0) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (! function_exists('get_country_name_by_iso')) {
|
|
function get_country_name_by_iso($country_iso)
|
|
{
|
|
if (! is_empty($country_iso)) {
|
|
|
|
$country_iso = strtoupper($country_iso);
|
|
|
|
try {
|
|
return config("platform.country_codes.{$country_iso}")['name'];
|
|
} catch (\Exception $e) {
|
|
}
|
|
|
|
}
|
|
|
|
return 'International';
|
|
}
|
|
}
|
|
|
|
if (! function_exists('get_country_emoji_by_iso')) {
|
|
function get_country_emoji_by_iso($country_iso)
|
|
{
|
|
if (! is_empty($country_iso)) {
|
|
|
|
$country_iso = strtoupper($country_iso);
|
|
|
|
try {
|
|
return config("platform.country_codes.{$country_iso}")['emoji'];
|
|
} catch (\Exception $e) {
|
|
}
|
|
|
|
}
|
|
|
|
return '🌎';
|
|
}
|
|
}
|
|
|
|
if (! function_exists('str_random')) {
|
|
function str_random($length = 10)
|
|
{
|
|
return Str::random($length);
|
|
}
|
|
}
|