padosoft / support
用于在包和其他项目中作为基础的无歧义助手
3.1.1
2024-07-25 09:24 UTC
Requires
- php: >=7.0.0|^8.0|^8.1
- nesbot/carbon: ^2.52
Requires (Dev)
- phpunit/phpunit: ^5.0|^6.0|^7.0|^8.0|^9.0
- dev-master
- 3.1.1
- 3.1.0
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.2
- 2.4.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.17.4
- 1.17.3
- 1.17.2
- 1.17.1
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.1
- 1.14.0
- 1.13.1
- 1.13.0
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.1
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.1
- 1.3.0
- 1.1.0
- 1.0.0
This package is auto-updated.
Last update: 2024-09-25 09:52:05 UTC
README
此包提供了大量非常有用的无歧义助手,可用于包和其他项目的基础。
注意:其中一些助手由padosoft编写,另一些基于开源网络,还有一些经过重构和/或调整以适应我们的目的或改进。
##概述
所有助手函数都分为以下文件
- 数组
- 常量(通用有用常量)
- 日期时间
- 助手(杂项函数)
- IP
- 反射
- 清理
- 字符串
- 验证
- XML
##需求
- php: >=7.0.0|^8.0|^8.1
- nesbot/carbon(仅用于某些日期时间函数)
安装
您可以通过composer安装此包
$ composer require padosoft/support
用法
创建新的PHP文件,添加composer自动加载并开始使用函数。
<?php require "vendor/autoload.php"; var_dump(str_random(16));
函数列表
数组
- head
- last
- insert_at_top
- array_has
- array_get
- array_set
- CleanUpArrayOfInt
- array_split_filter
- in_array_column
- objectToArray
- arrayToObject
- arrayToString
- array_key_exists_safe
- array_get_key_value_safe
- isNullOrEmptyArray
- isNotNullOrEmptyArray
- isNullOrEmptyArrayKey
- isNotNullOrEmptyArrayKey
- array_remove_columns() : 从二维数组的子数组中删除给定的列。
- array_remove_first_columns() : 从二维数组的子数组中删除第一列。
- array_remove_last_columns() : 从二维数组的子数组中删除最后一列。
日期时间
- carbonFromIsoDateTime
- carbonFromIsoDate
- carbonFromItaDateTime
- carbonFromItaDate
- carbon
- roman_year
- partialsDateIso
- dateIsoToIta
- dateItaToIso
- monthFromNumber
- dateIsoToItaSpec
- getNameDayFromDateIso
- getTimeFromDateTimeIso
- diff_in_year
- age
- ampm
- ampm2Number
- fuzzySpan
- unixTimestamp2dos
- dos2unixTimestamp
- cal_days_in_month
- cal_days_in_current_month
- days_in_month
- days_in_current_month
助手(杂项函数)
- rgb2hex
- hex2rgb
- format_money
- format_euro
- ordinal
- value
- with
- setErrorReportingForProduction
- isExecutedByCLI
- bytes2HumanSize
- convertPHPSizeToBytes
- getMaximumFileUploadSize
- encryptString
- getFaviconUrl
- getFaviconImgTag
- isHttps
- getQRcode
- getQRcodeUrl
- gravatarUrl
- gravatar
- isNumberOdd
- isNumberEven
- getTinyUrl
- expandShortUrl
- curl
- curl_internal_server_behind_load_balancer
- debug
- isAjax
- isMobile
- getBrowser
- getReferer
- getCurrentURL
- getCurrentUrlPageName
- getCurrentUrlQuerystring
- getCurrentUrlDirName
- getCurrentUrlDirAbsName
- isZlibOutputCompressionActive
- isZlibLoaded
- isClientAcceptGzipEncoding
- compressHtmlPage
- get_http_response_code
- url_exists
- startLayoutCapture
- endLayoutCapture
- get_var_dump_output
- logToFile
- isImageExtension
- getImageExtensions
- template
- randomChance
- getExceptionTraceAsString
- windows_os
- getConsoleColorTagForStatusCode() : 获取给定状态代码的用于symfony/laravel控制台的颜色标签。
- get_os_architecture() : 获取操作系统架构 32 或 64 位。
- is_32bit() : 检查操作系统架构是否为32位。
- is_64bit() : 检查操作系统架构是否为64位。
- isRequestFromCloudFlare(): 检查请求(通过给定 $_SERVER)是否为cloudflare请求。
- isCloudFlareIp(): 检查给定的IP是否为有效的cloudflare IP。
- gzCompressFile(): 将磁盘上的文件进行GZIP压缩(名称后添加 .gz 扩展名),而不需要将整个源文件读入内存。
- getFileMimeType(): 使用更多策略获取文件的MIME类型字符串,如果失败则返回FALSE。
- getFileMimeTypeByFileInfo(): 使用较新的PHP finfo函数获取文件MIME类型字符串。
- getFileMimeTypeByOSFileCommand(): 使用操作系统的file命令获取文件MIME类型字符串。据我所知,这仅在*NIX系统上可用。
- getImageMimeTypeByExif_imagetype(): 使用exif_imagetype获取图像的MIME类型字符串。
IP
- getIPVisitor
- anonimizeIp
- anonimizeIpv4() : 隐藏IPv4地址的最后一位。
- anonimizeIpv4Compatibility() : 隐藏IPv4兼容地址的最后一位。
- anonimizeIpv6() : 隐藏IPv6地址的最后一位。
- anonimizeIpWithInet() : 使用inet php函数隐藏IP地址的最后一位。
- getHost
- getClientIps
- getClientIp
- checkIp
- checkIp4
- checkIp6
- isFromTrustedProxy
- expandIPv6Notation(): * 将 '::' 替换为适当的 ':0' 数量。
- decbin32(): 确保二进制字符串被填充为零,总长度为32个字符。
- ipInRange(): 确定IP是否位于通过几种替代格式指定的特定范围内。
反射
- short_class_name
- class_constants
- class_uses_recursive
- class_basename
- getClassNameFromFile
- getNamespaceFromFile
- getPhpDefinitionsFromFile
清理
- strip_nl
- jse : 转义javascript参数。
- e : 转义html参数。
- csse : 转义css参数。
- attre : 转义html属性参数。
- she() : 转义shell参数。
- normalizeUtf8String : 规范字符串。从给定的UTF8编码文本中删除所有变音符号(如重音符号)并返回ASCII文本。
- normalizerUtf8Safe() : 如果存在,使用php normalizer函数将utf8规范化为各种形式,否则返回原始字符串。
- sanitize_filename
- sanitize_pathname
- sanitize_arr_string_xss
- sanitize_string_xss
- sanitize_urlencode
- sanitize_email
- sanitize_numbers
- sanitize_floats
- sanitize_phone() : 通过从电话号码中删除非法字符来清理字符串。
字符串
- generateRandomPassword
- generateRandomString
- preg_replace_sub
- snake_case
- str_random
- ends_with
- ends_with_insensitive
- starts_with
- starts_with_insensitive
- str_contains
- str_contains_insensitive
- str_finish
- str_finish_insensitive
- str_is
- str_limit
- str_replace_array
- studly_case
- studly
- camel_case
- underscore2dash
- dash2underscore
- str_replace_multiple_space
- str_replace_last
- segment
- firstSegment
- lastSegment
- isNullOrEmpty
- isNotNullOrEmpty
- numberToWord
- secondsToText
- minutesToText
- hoursToText
- str_html_compress
- str_word_count_utf8
- slugify() : 从给定的字符串生成一个友好的"slug"。
- firstStringBetween(): 返回参数start和end之间的第一个字符串。
验证
- isStringNumberStartsWithMoreThanOneZero
- isIntegerPositive
- isIntegerPositiveOrZero
- isIntegerNegative() : 检查值(int、float或string)是否为整数且小于零。
- isIntegerNegativeOrZero() : 检查值(int、float或string)是否为整数且小于零或等于零。
- isIntegerZero() : 检查值(int、float或string)是否为整数且等于零。
- isInteger
- isIntegerFloatingPoint
- isFloatingPoint
- isDouble
- isPercent
- isIntBool() : 检查值是否为整数/字符串0或1。
- isDateIta
- isDateIso
- isDateTimeIso
- isDateTimeIta
- isTimeIso
- isTimeIta
- isDateZeroIso() : 检查字符串是否为0000-00-00。
- isTimeZeroIso() : 检查字符串是否为00:00:00。
- isDateTimeZeroIso() : 检查字符串是否为 '0000-00-00 00:00:00'
- isDateOrDateZeroIso() : 检查字符串是否为 YYYY-mm-dd 且为有效日期或 0000-00-00
- isDateTimeOrDateTimeZeroIso() : 检查字符串是否为 'YYYY-mm-dd HH:ii:ss' 且为有效日期或 '0000-00-00 00:00:00'
- isDateZeroIta() : 检查字符串是否为 00/00/0000
- isTimeZeroIta() : 检查字符串是否为 00:00:00
- isDateTimeZeroIta() : 检查字符串是否为 '00/00/0000 00:00:00'
- isDateOrDateZeroIta() : 检查字符串是否为 dd/mm/YYYY 且为有效日期或 00/00/0000
- isDateTimeOrDateTimeZeroIta() : 检查字符串是否为 'dd/mm/YYYY HH:ii:ss' 且为有效日期或 '00/00/0000 00:00:00'
- hasMinAge
- hasMaxAge
- hasAgeInRange
- isInRange
- isDay
- isMonth
- isJewishLeapYear
- betweenDateIso
- betweenDateIta
- isMail
- isIPv4
- isIPv6
- isIPv4Compatibility
- isIP
- isUrl
- isHostname
- urlW3c
- isVATRegisteredInVies() : 使用欧盟委员会 VIES 服务验证欧洲增值税号,确认增值税号有权进行社区内交易时必须使用该服务。
- isITVat() : 检查意大利增值税号(Partita IVA)。
- isEuVatNumber() : 检查给定有效的欧盟增值税号是否符合特定欧盟国家的增值税规则(目前仅针对意大利)以及可选地检查欧盟 VIES 服务。
- getCoutryCodeByVatNumberTest($val, $fallback): 尝试从增值税号中提取欧盟国家代码,如果失败则返回 $fallback。
- isCf
- isAlpha
- isAlphaNumeric
- isAlphaNumericDash
- isAlphaNumericWhiteSpaces
- isNumeric() : 确定提供的值是否仅包含数字字符,带或不带(默认)符号。
- isNumericWithSign() : 确定提供的值是否仅包含带符号的数字字符。
- isNumericWithoutSign() : 确定提供的值是否仅包含不带符号的数字字符。
- isBool
- isBoolOrIntBool
- isCrediCard
- isValidHumanName
- isIban
- hasFileExtension
- isphoneNumber
- isJsonString
- isUuid
- isGeoCoordinate
- isLatitude
- isLongitude
- isAscii
- isUtf8
XML
- xmlUrl2array
- xml2array
- array2xml
- array2SimpleXMLElement
常量(通用有用常量)
- DS
- NUMBERS_ITA_ARR
- NUMBERS_EN_ARR
- PERIOD_IN_SECONDS_ITA_ARR
- PERIOD_SINGULAR_PLURAL_ITA_ARR
- PERIOD_IN_SECONDS_EN_ARR
- SECOND_IN_SECOND
- MINUTE_IN_SECOND
- HOUR_IN_SECOND
- DAY_IN_SECOND
- WEEK_IN_SECOND
- MONTH_IN_SECOND
- YEAR_IN_SECOND
- DATE_TIME_FORMAT_ISO
- DATE_TIME_FORMAT_ITA
- DATE_FORMAT_ISO
- DATE_FORMAT_ITA
- TIME_FORMAT_ISO
- TIME_FORMAT_ITA
- SUNDAY
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- DAYS_ITA_ARR
- DAYS_ENG_ARR
- GENNAIO
- FEBBRAIO
- MARZO
- APRILE
- MAGGIO
- GIUGNO
- LUGLIO
- AGOSTO
- SETTEMBRE
- OTTOBRE
- NOVEMBRE
- DICEMBRE
- MONTHS_ITA_ARR
- MONTHS_ITA_ARR_1_BASED
- MONTHS_SHORT_ITA_ARR
- MONTHS_SHORT_ITA_ARR_1_BASED
用法
您可以直接调用每个函数。示例
<?php /* * constans */ echo 'directory separator is: '.DS; /* * validation helpers */ //check iso date if( !isDateIso("") ) echo 'invalid.'; if( !isDateIso("2016-08-18") ) echo 'invalid.'; if( !isDateIso("2016-18-08") ) echo 'invalid.'; if( !isDateIso("0000-00-00") ) echo 'invalid.'; if( !isDateIso("00-00-00") ) echo 'invalid.'; if( !isDateIso("16-08-18") ) echo 'invalid.'; if( !isDateIso("2016-02-38") ) echo 'invalid.'; //check italian Fiscal Code if( !isCf("") ) throw new Exception(); if( !isCf("abcdefghijklmnoz") ) throw new Exception(); if( !isCf("xxxxxx12c34x567o") ) throw new Exception(); //check italian VAT (Partita iva) if( !isPiva("") ) throw new Exception(); if( !isCf("00000000000") ) throw new Exception(); if( !isCf("02361141209") ) throw new Exception(); if( !isCf("00000000001") ) throw new Exception(); //check integer value if( !isInteger(1561) ) throw new Exception(); if( !isInteger('sadasd') ) throw new Exception(); /* * datetime helpers */ //sleep 2 minuti sleep(2*MINUTE_IN_SECOND); //sleep 2h sleep(2*HOUR_IN_SECOND); //sleep 2min and 30seconds sleep(2*MINUTE_IN_SECOND+30); //date format echo date(DATE_FORMAT_ISO);//'Y-m-d' echo date(DATE_FORMAT_ITA);//'d-m-Y' echo date(DATE_TIME_FORMAT_ISO);//'Y-m-d H:i:s' //date conversion echo dateIsoToIta('2016-08-18');//08/18/2016 //days and month echo DAYS_ITA_ARR[0];//Lunedi echo DAYS_ITA_ARR[date('w')]; echo MONTHS_ITA_ARR_1_BASED[12];//Dicembre echo MONTHS_ITA_ARR_1_BASED[date('j')]; //misc echo roman_year(50);//L echo roman_year(10);//X echo roman_year(2000);//MM echo roman_year(2016);//MMXVI /** * String */ echo str_random(16);
NOTA: 要获取辅助函数的完整列表,请查看 /src 中的代码。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件而不是使用问题跟踪器。
鸣谢
关于 Padosoft
Padosoft (https://www.padosoft.com) 是一家位于意大利佛罗伦萨的软件公司。专注于电子商务和网站。
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。