<?php namespace nur\v; use nur\A; /** * Class html: des outils pour générer du HTML */ class html { /** quoter une valeur à mettre dans un attribut HTML */ static function qa(?string $value): ?string { if ($value === null) return null; return htmlspecialchars($value); } /** * retourner un url modifié en lui rajoutant les paramètres spécifiés. * * les tableaux de $params sont applatis avant utilisation. */ static function bu(string $url, ...$params): string { if (!$params) return $url; $parts = parse_url($url); if ($parts === false) { # url invalide... on laisse tomber return $url; } $url = ""; $part = A::get($parts, "scheme", false); if ($part !== false) $url .= "$part:"; $part = A::get($parts, "host", false); if ($part !== false) $url .= "//$part"; $part = A::get($parts, "port", false); if ($part !== false) $url .= ":$part"; $part = A::get($parts, "path", false); if ($part !== false) $url .= "$part"; $part = A::get($parts, "query", ""); A::flatten($params); $part2 = http_build_query($params); if ($part2) { if ($part != "") $part .= "&"; $part .= $part2; } if ($part != "") $url .= "?$part"; $part = A::get($parts, "fragment", false); if ($part !== false) $url .= "#$part"; return $url; } /** retourner $value avec les espaces remplacés par */ static function nbsp(?string $value): ?string { if ($value === null) return null; return preg_replace('/ +/', ' ', $value); } }