58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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);
 | 
						|
  }
 | 
						|
}
 |