Вы можете использовать PHP-функцию array_map
или перебор массива для создания строки атрибутов, а затем вставить её в HTML-разметку. Вот пример кода:
<?php
$section_attrs = array(
'id' => '',
'class' => 'section-content',
'aria-label' => 'Site content',
);
// Функция для генерации атрибутов
function render_attributes($attributes) {
$result = '';
foreach ($attributes as $key => $value) {
if (!empty($value)) { // Игнорируем пустые значения
$result .= sprintf('%s="%s" ', $key, htmlspecialchars($value, ENT_QUOTES));
}
}
return trim($result); // Убираем лишний пробел в конце
}
// Генерируем атрибуты
$attrs_string = render_attributes($section_attrs);
// Выводим разметку
echo '<section ' . $attrs_string . '></section>';
?>
Результат:
<section class="section-content" aria-label="Site content"></section>
Пояснение:
- Проверка на пустоту: Убедитесь, что значение атрибута не пустое, чтобы избежать вывода пустых атрибутов, таких как
id=""
. - Экранирование значений: Используем
htmlspecialchars
для предотвращения возможных XSS-уязвимостей. - Форматирование строки:
sprintf
упрощает сборку строки видаkey="value"
.
Если вам нужен более динамичный подход для других тегов, это решение легко адаптировать.