Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Html.php

function Html::getId

Prepares a string for use as a valid HTML ID.

Only use this function when you want to intentionally skip the uniqueness guarantee of self::getUniqueId().

Parameters

string $id: The ID to clean.

Return value

string The cleaned ID.

See also

self::getUniqueId()

9 calls to Html::getId()
BigPipeStrategy::generateBigPipePlaceholderId in core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php
Generates a BigPipe placeholder ID.
BlockEntitySettingTrayForm::buildForm in core/modules/settings_tray/src/Block/BlockEntitySettingTrayForm.php
Form constructor.
ConfigureBlockFormBase::doBuildForm in core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php
Builds the form for the block.
ConfigureSectionForm::buildForm in core/modules/layout_builder/src/Form/ConfigureSectionForm.php
Form constructor.
FormBuilder::doBuildForm in core/lib/Drupal/Core/Form/FormBuilder.php
Builds and processes all elements in the structured form array.

... See full list

File

core/lib/Drupal/Component/Utility/Html.php, line 224

Class

Html
Provides DOMDocument helpers for parsing and serializing HTML strings.

Namespace

Drupal\Component\Utility

Code

public static function getId($id) {
    $id = str_replace([
        ' ',
        '_',
        '[',
        ']',
    ], [
        '-',
        '-',
        '-',
        '',
    ], mb_strtolower($id));
    // As defined in https://www.w3.org/TR/html4/types.html#type-name, HTML IDs can
    // only contain letters, digits ([0-9]), hyphens ("-"), underscores ("_"),
    // colons (":"), and periods ("."). We strip out any character not in that
    // list. Note that the CSS spec doesn't allow colons or periods in identifiers
    // (https://www.w3.org/TR/CSS21/syndata.html#characters), so we strip those two
    // characters as well.
    $id = preg_replace('/[^A-Za-z0-9\\-_]/', '', $id);
    // Removing multiple consecutive hyphens.
    $id = preg_replace('/\\-+/', '-', $id);
    return $id;
}
RSS feed
Powered by Drupal