$val) { if ($key === 'quote') { $quote = $val; continue; } if ($key === 'style' && is_array($val)) { if (empty($val)) { continue; } $parts = array(); foreach ($val as $k => $v) { $parts[] = "$k: $v"; } $attributes[] = 'style="' . implode('; ', $parts) . '"'; continue; } $attributes[] = sprintf( '%s="%s"', //filter_var($key, FILTER_SANITIZE_URL), rawurlencode($key), //filter_var($val, FILTER_SANITIZE_FULL_SPECIAL_CHARS) rawurlencode($val) ); } if ($urlFormat instanceof Url) { $url = $urlFormat; $uriParams = $url->getParams() + $uriParams; } else { $url = Url::fromPath($urlFormat); } $url->setParams($uriParams); return sprintf( '%s', $url, !empty($attributes) ? ' ' . implode(' ', $attributes) : '', $quote ? filter_var( $htmlContent, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_FLAG_NO_ENCODE_QUOTES ) // Alternativ: htmlentities($htmlContent) : $htmlContent ); } }