Ressources pour webmasters
PHP
Zlib – Optimiser le temps de chargement via la compression
6/07/11
Utiliser la compression Gzip dans votre site internet vous permet de réduire de plus de moitié le poids de vos pages à acquérir. Le module zlib est près installé chez de nombreux hébergeurs.
Dans certains cas, il est nécessaire de l’activer. Exemple, chez 1&1, il faut créer un fichier php.ini à insérer dans chaque répertoire où doit s’appliquer la compression, contenant le code
zlib.output_compression = true
En Php
Si la méthode précédente ne fonctionne pas, vous pouvez compresser vos fichier grâce aux fonctions php ob_* (> PHP 4).
<? php
ob_start("ob_gzhandler");
?>
<!-- Contenu de la page -->
<? php
ob_end_flush();
?>
[PHP] Solution aux problèmes d’encodage
19/06/11
Qui n’a jamais eu de problème avec les caractères spéciaux? Après quelques heures à me battre avec les Charset, j’ai enfin réussi trouver la solution!
$string est une chaine contenant les caractères spéciaux (normaux « é » et au format HTML « é »), encodée en ISO ou en UTF8. La chaine de sortie est en UTF8.
$string = mb_check_encoding($string, 'UTF-8')? utf8_encode($string): $string;
En espérant résoudre le problème de certains …
[PHP] Tester si le navigateur accepte les Cookies
8/07/10
Cette petite fonction basique vous permet de savoir si le navigateur de votre client accepte les Cookies. Cette fonction est à placer en haut de page, avant toute balise HTML car elle contient la fonction header.
La fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if($_GET['CookieTest']!= "done") { setcookie("CookieTest","1"); header("Location:? CookieTest=done"); exit(); } elseif(empty($_COOKIE["CookieTest"])) { echo "Les Cookies ne sont pas acceptés."; } else { echo "Les Cookies sont acceptés."; } |
1 | Attention! Vous n'acceptez pas les Cookies! |
[PHP] Calculer une moyenne
2/05/10
Voici une petite fonction très pratique qui vous permettra de calculer une moyenne.
Source et exemple :
1 2 3 4 5 6 7 8 9 | function moyenne() { $values = func_get_args(); $count = sizeof($values); $sum = array_sum($values); return ($sum/$count); } echo moyenne('1.5','2','2.5'); // Affiche "2" |
[PHP] Détecter le navigateur de l’utilisateur et sa version
24/04/10
A partir de PHP4, vous pouvez utiliser la fonction get_browser(), laquelle vous offre un rapport très complet de la configuration du client. Cependant cette fonction est assez lourde. Je vous propose donc 2 méthodes: avec get_browser(), et une fonction plus légère.
Avec get_browser()
La fonction get_browser() lit les informations d’un fichier browscap.ini.
Voir la documentation officielle de la fonction.
Exemple d’utilisation :
1 2 | $browser = get_browser(null, true); print_r($browser); |
Voici un exemple de résultat :
Array ( [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 (Windows;?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => )
Donc si vous voulez seulement récupérer le navigateur et sa version par exemple, vous pouvez utiliser un code de cette forme :
1 2 3 4 | $browser = get_browser(null, true); $navigateur = $browser['browser']; $version = $browser['version']: |
Pour utiliser cette fonction, vous devez avoir présent un fichier browscrap.ini, et avoir informé son emplacement dans votre fichier php.ini.
Téléchargez le zip pour avoir un exemple.
Un fonction plus légère
Si vous ne désirer QUE récupérer le type et la version du navigateur de votre client, vous pouvez utilisez la fonction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function browser_info($agent=null) { $known = array('msie', 'firefox', 'safari', 'webkit', 'opera', 'netscape', 'konqueror', 'gecko'); $agent = strtolower($agent? $agent: $_SERVER['HTTP_USER_AGENT']); $pattern = '#(?'. join('|', $known) . ')[/ ]+(?[0–9]+(?:\.[0–9]+)?)#'; if (! preg_match_all($pattern, $agent, $matches)) return array(); $i = count($matches['browser'])-1; return array($matches['browser'][$i] => $matches['version'][$i]); } $res = browser_info(); print_r($res); |
[PHP] Forcer le téléchargement d’un fichier
10/04/10
Créez une page telechargement.php par exemple et insérez y le code suivant :
1 2 3 4 5 6 7 8 9 10 11 | <? php // Fichier à Télécharger $file = 'le-fichier.txt'; header("Content-Type: octet-stream"); header("Content-Length: ".filesize($file) ); header("Content-Disposition: attachment; filename=$file"); include($file); ?> |
[PHP] Vérifier une URL
9/04/10
Cette fonction vérifie si la variable envoyée est syntaxiquement conforme à une url.
La Fonction :
1 2 3 4 5 6 7 8 9 | <?php function IsUrl($url) { $patten= "/^(http:\/\/)(w{0}|{3})\.?[a-zA-Z0-9._-]+\.+[a-zA-Z]{2,3}\$/i"; if (!preg_match($patten, $url)) { return true; } else { return false; } } IsUrl('http://www.t-web.fr'); ?> |
[PHP] Remplacer les BBCodes
9/04/10
[PHP] Récupérer le dernier AUTO_INCREMENT
9/04/10
Cette fonction vous retourne la valeur du dernier champ généré par AUTO_INCREMENT de la dernière requête INSERT exécutée.
Soit la table suivante :
1 | CREATE TABLE ma_table (id INT not null AUTO_INCREMENT, prenom VARCHAR (50) not null , nom VARCHAR (50) not null, PRIMARY KEY (id)) |
La structure de la table sera donc par exemple :
+++++++++++++++++++++++++++++++
+ id + prenom + nom +
+++++++++++++++++++++++++++++++
+ 1 + Albert + DUPONT +
+++++++++++++++++++++++++++++++
Lors de l’ajout de Albert DUPONT via une requête INSERT, on souhaite connaître l’ID qui sera ajouté automatiquement sur cette ligne.
On utilise alors le code suivant :
Code :
1 2 3 4 5 | <?php mysql_query("INSERT INTO ma_table (prenom, nom) values ('Albert', 'DUPONT')"); $last_id = mysql_insert_id(); echo $last_id; ?> |
[PHP] Vérifier une adresse email
9/04/10
Cette condition vérifie si la variable $mail est une adresse email syntaxiquement correcte.
1 2 3 4 5 | $mail = "monmail@serv.com"; if(preg_match("/^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+[a-zA-Z]{2,4}$/", $mail)) { echo "syntaxe du mail: ok"; } |
