Fonctions utiles en Php

Même si Php regorge de fonctions toute prête, il est parfois nécessaire d’en créer une afin de satisfaire un problème spécifique.

Voici quelques fonctions qui m’ont bien été utiles.

N’hésitez pas à les commenter. 🙂

 

Cette liste se mettra au fur et à mesure à jour.

Dernière MAJ: 03/06/2013

Convertir le code HTML ISO vers le caractère

/**
* Convertit le code HTML ISO comme " vers leur caractère
* Convert HTML entities ISO like " to their Character equivalents
* @author Guillaume P.
* @param string $str
* @return $str
* @url http://www.jawama.com/informatique/php-informatique/fonctions-utiles-en-php
*/
function iso_to_char($str){
	$tab_iso = array(
						""" , "&" , "€", "", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "Š",
						"‹", "Œ", "", "Ž", "", "", "‘", "’", "“", "”", "•", "–", "—",
						"˜", "™", "š", "›", "œ", "", "ž", "Ÿ", " ", "¡", "¢", "£", "¤",
						"¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±",
						"²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾",
						"¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë",
						"Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø",
						"Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å",
						"æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò",
						"ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ"
			);
	$tab_car = array(
						"\"", "&", "€", "", "'", "ƒ", "\"", "…", "+", "#", "^", "‰", "Š",
						 "<", "Œ", "", "Z", "", "", "'", "'", "\"", "\"", "*", "-", "--",
						 "~", "™", "š", ">", "œ", "", "z", "Y", "Space", "¡", "¢", "£", "¤",
						 "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±",
						 "²", "³", "'", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾",
						 "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë",
						 "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø",
						 "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å",
						 "æ", "ç", "è", "é", "ê","ë", "ì", "í", "î", "ï", "ð", "ñ", "ò",
						 "ó", "ô", "õ", "ö", "÷", "ø","ù", "ú", "û", "ü", "ý", "þ", "ÿ"
				);
	return str_replace($tab_iso,$tab_car,$str);
}

Convertir des secondes en hh:mm:ss

/**
* Convertit des secondes en hh:mm:ss
* Convert seconds to hh:mm:ss
* @author Guillaume P.
* @param int $secondes
* @return string "hh:mm:ss"
* @url http://www.jawama.com/informatique/php-informatique/fonctions-utiles-en-php
*/
function sec_to_time($secondes){
$mds = $secondes % 3600;
$mds2= $mds % 60;
return sprintf('%02d:%02d:%02d', ($secondes - $mds ) / 3600), ( $mds - $mds2 ) / 60), ($mds2));
}

Convertir une date au format HTML5 attribut

A partir de Php5
Au préalable définir le décalage horaire par défaut de toutes les fonctions date/heure:

date_default_timezone_set('Europe/Paris');

Puis:

date('c', strtotime("2013-04-05 12:13:25"));

ou

date(DATE_W3C, strtotime("2013-04-05 12:13:25"));

Va nous donner:

2013-04-05T12:13:25+02:00

Avoir la date en Français

Au préalable Modifier les informations de localisation:

setlocale(LC_TIME, 'fr_FR.utf8','fra');
/**
* Convertit une date US vers une date en Français (janvier, Février...)
* @author Guillaume P.
* @param int $_date: la date | $format: Format de sortie
* @return string
* @url http://www.jawama.com/informatique/php-informatique/fonctions-utiles-en-php
*/
function formatDateTime($_date, $format = '%d %B %Y à %Hh%Mm') {
		return strftime($format, strtotime($_date));
	}

Exemple:

echo formatDateTime("2012-03-01","%B");

Nous donne:

Mars

Récupérer le nom de domaine principal

* Permet d'extraire le nom de domaine principal à partir d'une url
* @param string url (avec http://)
* @return string
* @url http://www.jawama.com/informatique/php-informatique/fonctions-utiles-en-php
*/
function get_domain($url){
	$tld = array(
			'ac', 'ad', 'ae', 'aero', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'arpa', 'as', 'asia', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'biz', 'bj', 'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cat', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'com', 'coop', 'cr', 'cu', 'cv', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'edu', 'ee', 'eg', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gov', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'info', 'int', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jobs', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mil', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu',
			'museum', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'name', 'nc', 'ne', 'net', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'org', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'post', 'pr', 'pro', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'st', 'su', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tel', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tp', 'tr', 'travel', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'xxx', 'ye', 'yt', 'za', 'zm', 'zw'
	);
	//SOURCE: http://data.iana.org/TLD/tlds-alpha-by-domain.txt
   $host =  parse_url($url,PHP_URL_HOST);
   $list = explode('.',$host);
   $res = array();
   $i = count($list) - 1;
   while($i >= 0){
      if(!in_array($list[$i],$tld)){
         $res[] = $list[$i];
         break;
      }
    $res[] = $list[$i];
    $i--;
     }
    return implode('.',array_reverse($res));
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *