castlegate / ersatz-functions
PHP 和 WordPress 函数
README
基本的 PHP 和 WordPress 函数。使用 Composer 安装
composer require castlegate/ersatz-functions
函数
核心
核心函数使用 Castlegate\ErsatzFunctions
命名空间。
nested
返回嵌套对象或数组值。
function nested($object, ...$keys)
此函数尝试返回嵌套对象或数组值。如果任何嵌套属性或键不存在,函数将返回 null
。不区分具有 null 值的属性和不存在的属性。
element
返回 HTML 元素。
function element(string $element, ...$args): ?string
此函数返回一个具有属性的 HTML 元素,如果内容不为空且所有必需的属性都有值。如果元素是 void 元素,参数传递给 nonContentElement
函数。如果元素不是 void 元素,参数传递给 contentElement
函数。
contentElement
返回带内容的 HTML 元素。
function contentElement(
string $element,
string $content,
array $attributes = [],
array $required_attributes = []
): ?string
如果提供了非空内容,可选地提供了所有必需的属性,则此函数将返回一个 HTML 元素。如果不提供,它将返回 null
。第一个参数是元素名称。第二个参数是内容,必须非空才能返回元素。第三个参数是属性的关联数组。
第四个参数是必需属性的数组。如果指定,则这些属性必须存在于属性数组中,并且它们必须具有非空值。
nonContentElement
返回 HTML void 元素。
function nonContentElement(
string $element,
array $attributes = [],
array $required_attributes = []
): ?string
如果提供了所有必需的属性,则此函数将返回一个 HTML void 元素。如果不提供,它将返回 null
。第一个参数是元素名称。第二个参数是属性的关联数组。
第三个参数是必需属性的数组。如果指定,则这些属性必须存在于属性数组中,并且它们必须具有非空值。
hasRequiredAttributes
必需属性设置且非空?
function hasRequiredAttributes(
array $attributes,
array $required
): bool
检查关联数组是否具有所有必需的键,并且这些键具有非空值。
attributes
将 HTML 属性作为字符串返回。
function attributes(array $attributes): ?string
此函数将 HTML 属性的关联数组转换为格式正确的 HTML 属性字符串。对象和数组值转换为空格分隔的字符串值。
wrap
返回包装内容。
function wrap(
string $content,
string $before = '',
string $after = ''
): ?string
如果内容不为空,则将返回在第二和第三个参数中提供的字符串包装的内容。如果内容为空,则忽略其他参数,函数返回 null。
obfuscate
随机编码字符或字符序列。
function obfuscate(string $str): string
此函数将字符串中的每个字符随机编码为字符、十进制 HTML 实体或十六进制 HTML 实体。
characters
将字符串拆分为字符数组。
function characters(string $str): array
此函数将字符串拆分为字符数组。与 str_split
不同,它可以在多字节字符串上安全使用。请注意,从 PHP 7.4 开始可用 mb_str_split
。
entity
将字符串中的字符编码为 HTML 实体。
function entity(string $str, bool $hex = false): string
url
返回格式化的 URL。
function url(string $url, bool $human = false): ?string
该函数返回一个有效的URL,或者如果第二个参数为true,则返回一个可读的URL。如果URL不能被parse_url
解析,则该函数返回null
。
tel
返回格式化的电话号码。
function tel(string $tel, bool $human = false): ?string
该函数尝试创建一个可机器读取的电话号码,可以用于tel:
链接,通过删除电话号码字符串中的无效字符和括号段。如果第二个参数为true
,则返回未修改的字符串作为可读的电话号码。
urlLink
返回格式化的HTML URL链接。
function urlLink(
string $url,
string $content = null,
array $attributes = []
): ?string
第一个参数是URL,第二个参数是内容,第三个参数是属性数组。如果未提供第二个参数,则使用URL的易读版本。
emailLink
返回格式化的HTML电子邮件链接。
function emailLink(
string $email,
string $content = null,
array $attributes = []
): ?string
第一个参数是电子邮件地址,第二个参数是内容,第三个参数是属性数组。电子邮件地址将被混淆。如果未提供第二个参数,则使用电子邮件地址。
telLink
返回格式化的HTML电话链接。
function telLink(
string $tel,
string $content = null,
array $attributes = []
): ?string
第一个参数是以可读字符串形式表示的电话号码,第二个参数是内容,第三个参数是属性数组。电话号码将被解析以删除可选和无效组件。如果未提供第二个参数,则使用原始的、未修改的电话号码。
dateRange
返回日期范围。
function dateRange(
DateTime $start,
DateTime $end,
array $formats = null,
string $dash = null
): string
该函数返回从第一个参数DateTime
实例到第二个参数DateTime
实例的字符串表示形式的日期范围。第三个参数是用于比较和输出的可选关联数组,其中包含日期格式(键)和输出值(值)。示例
$formats = [ // Year, month, and day match 'Ymd' => [ 'j F Y', // output format ], // Year and month match 'Ym' => [ 'j', // start date output format 'j F Y', // end date output format ], // Year matches 'Y' => [ 'j F', // start date output format 'j F Y', // end date output format ], ];
如果年、月、日相同,则使用第一个格式。如果年和月相同,则使用第二对格式。如果年相同,则使用第三对格式。如果两个日期的任何部分都不相同,则使用第一个格式(具有Ymd
键)用于两个日期。
第四个参数是用于分隔起始日期和结束日期的字符串,默认为一个破折号。
timeRange
返回时间范围。
function timeRange(
DateTime $start,
DateTime $end,
string $format = 'G:i',
string $dash = null
): string
该函数返回从第一个参数DateTime
实例到第二个参数DateTime
实例的字符串表示形式的时间范围。第三个参数是用于比较和输出的时间格式,默认为G:i
。第四个参数是用于分隔起始日期和结束日期的字符串,默认为一个破折号。
bytes
返回字节数的易读表示。
function bytes(
int $bytes,
int $points = null,
bool $binary = false,
string $space = null
): string
将字节数转换为更易读的字符串,带有正确的SI单位。第二个参数设置小数位数。默认小数位数为2。如果第三个参数为true,则假设1千字节为1024字节,而不是默认的1000字节。第四个参数设置用于分隔值和单位的字符。默认分隔符为非换行空格。
WordPress
WordPress函数使用Castlegate\ErsatzFunctions\WordPress
命名空间。
templatePageList
通过模板返回页面数组。
function templatePageList(string $template, array $args = []): ?array
该函数返回使用特定模板的页面数组,如果没有找到,则返回null。第二个参数可以用于向get_posts函数传递额外的选项。默认情况下,页面数组按menu_order属性排序。
templatePage
通过模板返回页面。
function templatePage(string $template, array $args = []): ?object
该函数返回第一个页面,按menu_order排序,使用特定模板,如果没有找到,则返回null。第二个参数可以用于向get_posts函数传递额外的选项,这可能会影响返回的页面的排序顺序,因此可能会影响该函数返回的页面。
触发403
触发403 "禁止" 错误。
function trigger403(
string $message = null,
string $title = null,
array $args = []
): void {
此函数是对 wp_die
的包装,消息和标题设置为 Forbidden
,响应代码设置为 403
。
trigger404
触发404 "未找到" 错误。
function trigger404(): void
此函数触发404 "未找到" 错误,并显示404模板,如果它可用。
标签
返回文章类型或分类法标签。
function labels(string $item, string $items = null): array
此函数创建一个标签数组,可用于与 register_post_type
和 register_taxonomy
函数一起使用。第一个参数是文章类型或分类法的单数名称。第二个参数是复数名称。如果没有提供复数名称,将通过在单数名称后添加 "s" 来创建复数。
许可证
在 MIT 许可证 下发布。