mcaskill/php-html-build-attributes

生成HTML属性字符串。

v1.3.0 2023-08-09 03:09 UTC

This package is auto-updated.

Last update: 2024-09-10 04:33:54 UTC


README

PHP 5 >= 5.4, PHP 7, PHP 8

生成HTML属性字符串。

安装

使用 Composer

$ composer require mcaskill/php-html-build-attributes

或者,从包源下载 Function.HTML-Build-Attributes.php 并将其保存到项目路径中的某个位置。

升级

此包遵循 语义版本控制,这意味着在主要版本之间可能发生破坏性更改。

API

html_build_attributes( array|object $attr [, callable $callback = null ] ) : string

参数

  • attr — 包含属性、表示属性名称和值的关联数组或对象。

    如果 attr 是一个非迭代对象,则仅将可访问的非静态属性纳入结果中。

    如果属性名称为空字符串,则忽略该属性。属性名称将删除前导和尾随空格。

    如果属性值是可调用的(无论是作为 Closure 还是可调用的),则调用它,并继续处理返回的值。

    如果属性值是 null,则忽略该属性。

    如果属性值是可数或可字符串化的对象,则将其转换为原始类型。

    如果属性值是布尔值且为 true,则属性将不带值呈现,否则忽略该属性。

    如果属性值是数组,则仅接受数字和字符串。数组中的字符串将删除前导和尾随空格。如果过滤后的数组为空,则忽略该属性。

    任何其他值将使用 json_encode() 进行序列化。

  • callback — 用于转义HTML属性值的回调函数。

    如果没有提供函数,则使用 htmlspecialchars()

    如果使用WordPress,则使用 esc_attr() 函数。

返回值

返回HTML属性字符串或空字符串,如果 attr 无效或为空。

示例

示例 #1: html_build_attributes() 的简单使用

$attr = [
  'type'           => 'file',
  'id'             => 'avatar',
  'name'           => 'avatar',
  'class'          => [ 'form-control', 'form-control-sm' ],
  'multiple'       => true,
  'disabled'       => false,
  'accept'         => implode(',', [ 'image/png', 'image/jpeg' ]),
  'data-max-files' => 3,
];

echo '<input ' . html_build_attributes($attr) . '>';

上面的示例将输出

<input type="file" id="avatar" name="avatar" class="form-control form-control-sm" multiple accept="image/png,image/jpeg" data-max-files="3">