castlegate/ersatz-functions

PHP 和 WordPress 函数

v1.1.0 2022-11-22 09:50 UTC

This package is auto-updated.

Last update: 2024-09-22 14:56:35 UTC


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_typeregister_taxonomy 函数一起使用。第一个参数是文章类型或分类法的单数名称。第二个参数是复数名称。如果没有提供复数名称,将通过在单数名称后添加 "s" 来创建复数。

许可证

MIT 许可证 下发布。