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);
 | |
|   }
 | |
| }
 |