Trucs et astuces PHP (I) | |
| |
Comment afficher l'heure courante au format français* ? | |
Affiche :<? setlocale("LC_TIME", "fr"); echo ucwords(strftime("%A %d %B %Y")); ?> Samedi 20 Juillet 2002
| |
Comment connaître la taille d'un fichier situé sur un autre serveur ? | |
<? $fichier = join($fichier,file("http://www.site.com/index.php3")); echo "La taille du fichier est de : ".strlen($fichier)." caractères"; ?> Affiche : La taille du fichier est de : 18405 caractères
| |
Comment trouver une chaîne de caractères dans un fichier ? | |
<? $fichier = join($fichier,file("index.php3")); if(eregi("php",$fichier)) echo "La chaîne a été trouvée"; else echo "La chaîne n'a pas été trouvée"; ?>
| |
Comment activer et désactiver tous les messages d'erreur PHP ? | |
Placez la directive error_reporting fixée à 0 avant tout autre code PHP. C'est une précaution utile une fois l'application terminée et prête à être livrée car les messages d'erreur PHP peuvent fournir des indications précieuses aux pirates. Placez la valeur à 15 pendant le développement pour controler que toutes les variables sont correctement initialisées. <? error_reporting(0) ?>
| |
Comment convertir une date Mysql au format français ? | |
<? $date = "2000-12-31"; echo date("d/m/Y",strtotime($date)); ?> Affiche : 31/12/2000
| |
Comment calculer une date dans le futur ou le passé ? | |
<? setlocale("LC_TIME", "fr"); echo "Demain nous serons le ".ucwords(strftime("%A %d %B %Y",mktime(0,0,0,date("m"),date("d")+1,date("Y"))))." Affiche :
| |
Comment insérer une image dans Mysql ? | |
# Structure de la table test CREATE TABLE test ( num_img int(10) unsigned DEFAULT '0' NOT NULL auto_increment, data_img blob NOT NULL, PRIMARY KEY (num_img), KEY num_img (num_img) ); Le code suivant place les données binaires de l'image dans une variable
(ici $data) et les sauvegarde dans le champ BLOB "data_img" puis les
envoie au navigateur. Le type MIME est ici "image/jpeg", mais il est
possible d'envoyer n'importe quel type de fichier (document PDF, Word...),
pour forcer par exemple un téléchargement disponible uniquement d'après
certaines conditions (inscription, paiement en ligne...). <? mysql_connect("localhost","",""); mysql_select_db("le_nom_de_votre_base"); $img = "image.jpg"; $fp = fopen($img,"r"); $data = fread($fp,filesize($img)); fclose($fp); $data = addslashes($data); mysql_query("INSERT INTO test (data_img) VALUES ('$data')"); //lecture des données $result = mysql_query("SELECT data_img FROM test LIMIT 1"); header("Content-Type:image/jpeg"); $row = mysql_fetch_array($result); echo $row["data_img"]; ?>
| |
Comment afficher dynamiquement les dimensions d'une image ? | |
<? $size = getimagesize("image.jpg"); ?>
| |
Comment afficher un montant au format monétaire français ? | |
<? echo number_format(1000000,2,","," ")." d'euros" ?> Affiche : 1 000 000,00 d'euros
| |
Comment récupérer le contenu de plusieurs cases à cocher ? | |
<form name="form1" action="formres.php"> <input type="checkbox" name="tab[]" value="1"> <input type="checkbox" name="tab[]" value="2"> <input type="checkbox" name="tab[]" value="3"> <input type="submit" name="Submit" value="Envoyer"> </form> La page fictive "formres.php", cible
du formulaire, contiendra un tableau $tab indexé numériquement. <? while (list(, $v) = each ($tab)) { echo $v."<br>"; } reset($tab); foreach ($tab as $v) { echo $v."<br>"; } ?> Affiche :
| |
Comment récupérer l'extension d'un fichier ? | |
<? echo strrchr("image.jpg","."); ?> Affiche : .jpg
| |
Comment connaitre à coup sûr le type d'un fichier sur UNIX* ? | |
En exécutant la commande native Unix "file nom_fichier" qui renvoie des informations sur le fichier spécifié. En effet, le type MIME d'un fichier uploadé est fourni par le client web, ce qui constitue un trou de sécurité facile à contourner pour un pirate. <? if(is_uploaded_file($userfile)) { if(!ereg("text",exec(escapeshellcmd("file $userfile")))) { unlink($userfile); echo "Désolé, seuls les fichiers texte sont autorisés !"; } else { move_uploaded_file($userfile, "/upload"); } ?>
| |
Comment mettre des données en cache pendant l'éxécution d'un script* ? | |
<? function get_meteo ($sortie) {
| |
Comment retrouver l'url absolue de la page courante* ? | |
<? echo "http://".$SERVER_NAME.$PHP_SELF; ?>
| |
Comment alterner les couleurs des lignes d'un tableau HTML ? | |
<?
| |
Comment afficher la coloration syntaxique d'une page PHP ? | |
Cette fonction est à utiliser avec précautions, le contenu du fichier pouvant révéler des informations critiques comme les mots de passe d'accès aux bases de données... <? highlight_file("script.php"); ?> Affiche :
| |
Comment supprimer les retours à la ligne d'une chaîne ? | |
Soit un fichier texte contenant ces lignes : php asp jsp html Le code php suivant affichera : <? $fp = fopen("mots_cle.txt","r"); while(!feof($fp)) { if(chop(fgets($fp,4096)) == "php") { echo "La chaîne 'php' a été trouvée"; break; } } fclose($fp); ?>
| |
Comment afficher les retours à la ligne d'une chaîne en HTML ? | |
<? $paragraphe = "ligne1\nligne2\nligne3\n"; echo nl2br($paragraphe); ?> Affiche :
| |
Comment récupérer du contenu sur un site* ? | |
<? function get_meteo ($sortie) { Récupère les données de la météo délimitées par les commentaires <!--debut meteo --> et <!--fin meteo --> sur un site et les affiche sur le votre. Attention au copyright !
| |
Comment couper une chaine trop longue dans un forum ou un livre d'or ? | |
<? $mot = "Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !"; $mot = wordwrap( $mot, 30, "<br>", 1); echo $mot; ?> Affiche : |