maksuco / helpers
一些有用的函数
- dev-master
- V2.0
- 1.9.9.9
- v1.9.9.8
- v1.9.9.7
- v1.9.9.6
- v1.9.9.5
- v1.9.9
- v1.9.8
- v1.9.7
- v1.9.6
- v1.9.5
- V1.9
- V1.8.9
- V1.8.8
- V1.8.7
- V1.8.6
- V1.8.5
- V1.8.4
- V1.8.3
- V1.8.2
- V1.8.1
- 1.8
- v1.7.9
- v1.7.8
- v1.7.7
- v1.7.6
- v1.7.5
- v1.7.4
- v1.7.3
- v1.7.2
- v1.7.1
- v1.7
- v1.6.8
- v1.6.7
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2.7
- v1.6.2.6
- v1.6.2.5
- v1.6.2
- v1.6.1
- v1.6
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- 1.5.3
- v1.5.2
- v1.5.1
- v1.5
- 1.3.3
- 1.3.2
- v1.3.1
- v1.3
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2
- v1.1
- v1.0.1
- v1.0
This package is not auto-updated.
Last update: 2024-09-21 00:24:27 UTC
README
此包包含一些PHP助手函数,用于日常任务
安装
此包需要Spatie/Analytics以生成图表。您可以通过composer安装此包
$ composer require maksuco/Helpers OR $ composer require maksuco/Helpers:dev-master
此包与Laravel +5.5的自动发现功能兼容,但与旧版本兼容
使用方法
<?php //In laravel \Helpers::mobile(); //In php $helpers = new \Maksuco\Helpers\Helpers(); $helpers->mobile(); //use Illuminate\Support\Facades\Helpers;
设备检查:移动设备、平板电脑、桌面
返回正确的设备,例如:(300,'table',200),当是移动设备时响应为300,如果是桌面则为200。('mobile','table','desktop')
\Helpers::agent($mobile,$table,$desktop);
检查是否是移动设备
\Helpers::mobile(); //Returns true or false
检查浏览器地区
返回浏览器地区,例如 'en',您发送您网站的可用语言,第一个是基础
\Helpers::browserLocale(['en','es']);
检查设备、操作系统和浏览器
\Helpers::user_agent(); //Returns Array ( [desktop] => 1 [mobile] => [tablet] => [device] => desktop [browser] => Chrome [os] => Macintosh [result] => Macintosh Chrome ) //Returns ['lang'], and ['estimate']=true if is not exact data
检查访问者是否为机器人
\Helpers::botDetected(); //Returns true or false
头像
此函数帮助您显示用户头像或Gravatar,只需发送用户数组或电子邮件。它返回图像路径或base64
$img = \Helpers::avatar($user); OR {{\Helpers::avatar($user->email)}}
名字
帮助您从全名中显示用户名字,返回名字的最大长度为11
{{\Helpers::firstname($fullname)}}
//Gina Gutierrez returns Gina
//Gi Gutierrez returns Gi Gutierrez
名字首字母
{{\Helpers::initials($fullname)}}
//SEND Sofia Loren
//GET SL
加密
以下是如何实现加密的示例,将字符串转换为哈希键,使用2个安全密钥:一个在config.app(crypto_string)中设置,另一个在控制器中,例如 $user->id
//SEND $security = Helpers::encrypt($string,$key); //AFTER $string = Helpers::decrypt($security,$key); //CONVERT LETTERS TO NUMBERS $string = Helpers::lettersToNumbers($string,$phone=false);
活动导航页面
发送当前页面名称,例如 'about' 或 'contactenos',它检查是否存在名为 $active(从控制器发送)的变量,然后检查路由是否有名称,然后检查页面的第一个部分,例如:about/history
{{\Helpers::nav_active($page)}}
//SEND: nav_active('about')
//RETURNS: 'active'
文本解析器
将纯文本转换为包含真实HTML链接(空白是可选的,默认为true)
{{\Helpers::text_parse($text,$blank)}}
//SEND: Welcome to http:://apple.com
//RETURNS: Welcome to <a href="http:://apple.com">http:://apple.com</a>
查找两个字符串之间的文本或替换
返回包含所有结果的数组
{{\Helpers::getTextBetween($text,$start,$end)}}
If you want to replace the text between two strings use
{{\Helpers::replaceTextBetween($text,$start,$end,$replace)}}
获取所有国家
在选择中显示国家列表
{{\Helpers::countries('en')}}
//RETURNS: Array
{{\Helpers::country('US')}}
//RETURNS: "id": 241,"code": "US","name_en": "United States","name_es": "Estados Unidos","status": null,"tel": 1,"lang": "en","currency": "USD","currency_symbol": "$","timezone_group": null
按国家获取所有城市
国家中的城市列表
{{\Helpers::cities('US')}}
//RETURNS: "id": 241,"code": "US","name_en": "United States","name_es": "Estados Unidos","status": null,"tel": 1,"lang": "en","currency": "USD","currency_symbol": "$","timezone_group": null
检查大陆
返回按名称的大陆,简化返回欧洲(如果为eu)或美洲(如果为其他任何内容)
{{\Helpers::continent('US')}}
//RETURNS: 'america'
{{\Helpers::continent('FR')}}
//RETURNS: 'europe'
获取所有时区
在选择中显示时区列表
{{\Helpers::timezones()}}
//RETURNS: Array
获取所有语言或语言代码名称
{{\Helpers::languages()}}
//RETURNS: Array
{{\Helpers::languages('en')}}
//RETURNS: 'english'
获取所有货币或货币详细信息以供echo使用
在选择中显示国家列表或货币详细信息(如符号、小数位数、名称等)
{{\Helpers::currencies()}}
//RETURNS: Array of isoCodes
{{\Helpers::currencies('complete')}}
//RETURNS: Array of all currencies with: name, isoCode, symbol and other data
{{\Helpers::currencies('usd')}}
//RETURNS: All data of the currency
{{\Helpers::currency_format('10000.00','usd',false)}}
//'10000.00','usd' RETURNS: $10,000 usd
//'100.30','usd' RETURNS: $100.30 usd
//'10000.30','eur' RETURNS: 10.000,30 €
//'10000.00','cop',true RETURNS: Array ["result" => "$10.000""symbol" => "$""htmlEntity" => "₱""amount" => "10.000""isoCode" => "COP""symbolFirst" => true"decimalSeparator" => ",""thousandsSeparator" => "."]
货币格式
{{\Helpers::moneyFormat($value,$currency)}}
//SEND: 1234.56,'EUR' RETURNS: €1,234.56
//SEND: 1234.00,'USD' RETURNS: $1,234
货币货币兑换
{{\Helpers::currency_exchange($amount, $from, $to, $round)}}
//SEND: 1,'EUR','USD' RETURNS: 1,99 (SAMPLE)
//SEND: 1,'EUR','USD',true RETURNS: 2 (SAMPLE)
十进制格式
用于在MySQL十进制列中保存数字的有用工具
{{\Helpers::decimalsFormat($number)}}
//SEND: 1,234.56 RETURNS: 1234.56
//SEND: 1,234 RETURNS: 1234.00
{{\Helpers::decimalsFormat($number,false)}} //NO CENTS
//SEND: 1,234.560 RETURNS: 1234560
//SEND: 1,234 RETURNS: 1234
位置 GEOIP
从IP获取城市、国家、语言和其他数据:此产品包括由MaxMind创建的GeoLite2数据,可在https://www.maxmind.com获取,也要求composer require maksuco/helpers-geo。 https://github.com/maxmind/GeoIP2-php 更好的是,您可以使用 'ip-api' 或 'ipstack'(ipstack需要第三个参数作为ipstack密钥或IPSTACK_KEY=xxx在.env文件上 - laravel)
$location_data = \Helpers::geoip($ip); //\Helpers::geoip($ip,'option'); OR \Helpers::geoip($ip,'ipstack','my_ipstack_key'); $location_data = \Helpers::geoipLaravel($ip); //\Helpers::geoip($ip,'option'); OR \Helpers::geoip($ip,'ipstack','my_ipstack_key');
如果您需要该函数提供IP,只需在 $ip 中放置null。如果您还想包含isp信息,只需包含第二个调用。
IP时区中的日期
\Helpers::timezone($ip,Carbon::now());
两点之间的位置距离
单位是可选的,默认是 "miles"(英里)
$distance = \Helpers::distance($lat1, $lon1, $lat2, $lon2, $unit = "K");
追加到JSON(目前仅适用于第一级)
向JSON数据或子分类(子分类和限制为可选)追加新数据。
您发送DB列作为$JSON,新的对象或数组作为$new。
\Helpers::appendtojson($json,$new,$subcategory,$limit)
限制,设置记录数量的限制
修改csv字符串操作:add(添加)、remove(移除)、check(检查)
发送id以添加、移除或检查是否存在于csv字符串中
\Helpers::csvstring($action,$data,$new)
使用操作修改数组:add(添加)、remove(移除)、check(检查)
向数组发送新数据以添加、移除、检查是否存在于数组中或反转。适用于顺序和关联数组。反转如果不存在则添加,如果存在则移除并返回“已添加”或“已移除”操作
\Helpers::array_process($action,$array,$new) //$array = ['michael','gina']; //array_process('add',$array,'bob') returns ['michael','gina','bob'] //array_process('remove',$array,'michael') returns ['gina'] //array_process('invert',$array,'michael') returns "removed" MALLLLLLl //Associative //$array = ['michael'=>'m']; //$new = ['michael'=>'something','donald'=>'duck','bob'=>'m']; //array_process('add',$array2,$new2) returns ['michael'=>'something','donald'=>'duck','bob'=>'m'] //array_process('check',$array,'gina') returns TRUE
集合关系追加
仅通过一个额外查询将另一张表的列包含在集合中 $principal_relation_column = 主引用INT,通常是id(此为可选)
示例:($user,$post,'user_id',[ 'post_name'=>'name' ])
\Helpers::collection_relation($principal_collection,$second_collection,$second_relation_column,['new_column'=>'second_column_name'],$principal_relation_column)
列:数组和JSON检查
检查值是否在列中(适用于json、数组和字符串explode)//仅1级 返回:true或false
{{(\Helpers::column_check($data,$value))? 'YES!':'NO!'}} //($user->favorites,124)
列处理(如果存在于列中,则删除它,如果不存在,则添加它)
\Helpers::column_process($data,$table,$column,$value) //($user,'users','favorites',124)
链接
检查域名是否没有http并添加它,以及其他链接、域名助手
{{\Helpers::link($account->domain)}}
//SEND: somedomain.com
//RETURNS: http://somedomain.com
//SEND: mailto:xxxx
//RETURNS: mailto:xxxx
从电子邮件中获取域名
$domain = \Helpers::domain_from_email($email); //returns the domain from an email if it's not a free service like gmail.com, else it returns false
从URL中获取域名
$domain = \Helpers::domain_from_url($url); //returns the domain.com from http://www.domain.com/something \Helpers::domain_from_url($url,true); //subdomain true //returns the account.domain.com from http://account.domain.com/something
从URL中获取html部分
您需要dom扩展 https://stackoverflow.com/questions/14395239/class-domdocument-not-found
$domain = \Helpers::url_html($url); //returns the body content of url $domain = \Helpers::url_html($url,'div'); //returns a string with first div content $domain = \Helpers::url_html($url,'#home',true); //returns the section with id="home" and true converts all img src and links href to full urls. //using id selects the entire section, using elements only selects the content.
将数字转换为telto号码
{{\Helpers::telto($phone)}}
//SEND: +1 (305) 890 8989
//RETURNS: 13058908989
获取youtube或vimeo链接的视频id,如果已经存在则返回相同的结果
{{\Helpers::getVideoID($provider,$string)}}
//SEND: 'youtube','https://www.youtube.com/watch?v=12345'
//RETURNS: 12345
//SEND: 'youtube','12345'
//RETURNS: 12345
//SEND: null,'https://host.com/file.mp4'
//RETURNS: https://host.com/file.mp4
电子邮件和域名检查
if(\Helpers::email_check($email)) {} //returns if the email is valid: true or false //Also checks if the domain exist OR if(\Helpers::domain_check($email)) {} //returns the domain from the email and checks if it exist OR if(\Helpers::domain_check('maksuco.com')) {} //Checks if the domain exist
获取文件类型
\Helpers::getFileType('xxx.mov'); //returns video
文件大小转换为字节计算器
发送 '1 mb' 并以字节为单位获取结果,发送测量值:b、kb、mb、gb、tb
\Helpers::sizetobytes('1 mb'); //returns xxxx bytes
生成随机字符串
发送随机字符串的长度
\Helpers::random(4); //returns 4 letters mix with numbers \Helpers::random(4,true); //if you want only numbers \Helpers::random(4,false); //if you want only letters
生成随机名称
测试名称,发送 'name'、'lastname' 或 'fullname' 或留空以获取全名
\Helpers::random_name($type); //returns John
生成随机引言
\Helpers::random_quote(); //returns Something special
隐藏字符串的一部分,如api_key
\Helpers::hide_string($string); //returns 3234****9099 \Helpers::hide_string($string, $middle = 'xx'); //returns 3234xx9099 \Helpers::hide_string('455667867897', $middle = 'xxddd','start'); //returns with 'start' 4556xxddd //returns with 'end' xxddd7897
根据一天中的时间问候
返回下午好、早上好等。(时区为可选)
\Helpers::greetings_by_time($timezone); //Returns: "Good morning", "Good afternoon", "Good evening" or "Good night"
根据日期差异返回天名
返回今天、明天、10天前等...
\Helpers::date_day($days_difference,$lang); //lang is optional
文件名解析
从字符串或URL中获取文件名,您还可以解析它并获取基本名称、扩展名和文件名
$filename = \Helpers::filename('http://xxx.com/this_is_the_name.png?v=xxx'); //RETURNS: this_is_the_name.png OR $filename = \Helpers::filename('http://yyyy.com/this_is_the_name.png',true); //RETURNS ARRAY: basename: this_is_the_name.png, extension: png, filename: this_is_the_name //USE: $filename->basename
短标题
以下是如何实现短标题函数以将名称转换为短标题的示例
$slug = \Helpers::slug('Hi how are you? Muy@#$%^&*good'); //RETURNS: hi-how-are-you-muy-good OR $slug = \Helpers::slug($name);
转换文件名,第二个参数指定在末尾添加的随机附加项,可以是文本或INT
$slug = \Helpers::slug_file('Hi how are you? Muy@#$%^&*good.jpg',0); //hi-how-are-you-muy-good.jpg OR $slug = \Helpers::slug_file($file->getClientOriginalName(),5); //hi-how-are-you-muy-good-hj567.jpg OR $slug = \Helpers::slug_file($filename,'great-doc'); //hi-how-are-you-muy-good-great-doc.pdf
在此函数中,您可以指定新的文件名(REPLACE)并使用相同的扩展名
$slug = \Helpers::slug_filename('SomeFile.jpg','new-name',0); //new-name.jpg OR $slug = \Helpers::slug_filename($file->getorriginalname(),'new-image',2); //new-image-9i.ext OR $slug = \Helpers::slug_filename($file,'one','great-images'); //one-great-images.png
以下是如何实现随机函数的示例,将随机添加到文件名末尾,并检查其是否为数字或字符串
$slug = \Helpers::slug_random('new-image'); //new-image-hv8
以下是如何实现随机函数的示例,将随机添加到文件名末尾,并检查其是否为数字或字符串
$slug = \Helpers::slug_username('Hi how are-you? Muy@#$%^&*good'); //hihoware-youmuygood
代码
帮助预和代码内容
$slug = \Helpers::prepareCode($codeVariable); //SEND: <script>xxxx</script> //RETURNS: <script>xxxx</script>
社交分享
$url可以为null以自动获取当前网页URL
Facebook分享
$app_id为可选
{{\Helpers::facebookshare($url,$title,$app_id)}}
Twitter分享
$username为可选
{{\Helpers::twittershare($url,$title,$username)}}
LinkedIn分享
$username为可选
{{\Helpers::linkedinshare($url,$title,$username)}}
Pinterest分享
$image为可选
{{\Helpers::pinterestshare($url,$title,$image)}}
Whatsapp分享
{{\Helpers::whatsappshare($url,$text)}}
Whatsapp聊天
{{\Helpers::whatsappchat($phone,$url,$text)}}
//\Helpers::whatsappchat('15551234xxx',null,'Im interested in your service')
替代target="_blank"添加弹出窗口
只需将onclick="return popup(this);添加到链接中
{!!\Helpers::popup()!!}
onclick="return popup(this);"
获取当前页面URL
{!!\Helpers::currenturl()!!}
最小化HTML
$html = \Helpers::minify_html($html);
处理Instagram爬虫
需要 https://github.com/postaddictme/instagram-php-scraper composer require raiym/instagram-php-scraper
$media = \Helpers::instagram_process($instagram,'username');