Le Blog de MaxiMoi200

jeudi 30 août 2007

Comment intégrer proprement un contenu Flash dans une page web ?

Grâce à l'excellent SWFObject, un fichier javascript qui détecte les contenus flash et permet de les intégrer au code HTML proprement, sur la plupart des navigateurs web

Il permet en outre d'éviter la demande systématique du navigateur de cliquer sur une animation flash pour en utiliser le contenu. Application : Menu interactif MaxiMoi200

Téléchargement et détails sur http://blog.deconcept.com/swfobject/

<script type="text/javascript" src="swfobject.js"></script>

<div id="flashcontent">
This text is replaced by the Flash movie.
</div>

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
so.addParam("quality", "low");
so.addVariable("variable1", "value1");
so.write("flashcontent");
</script>

mercredi 29 août 2007

Comment générer à la volée une vignette (thumbnail) d'un site avec URL2BMP et PHP (avec la librairie graphique GD) ?

Voir la description de l'utilitaire url2bmp ici

Dans un fichier creation_vignette.php inclure le code suivant :

<? exec('url2bmp.exe -file vignette.jpg -format jpeg -wx 1000 -wy 750 -bx 1000 -by 750 -notinteractive -url '.$_GET['URL'].' -wait 5 -removesb');
header("Content-type: image/jpeg");
$src_im = ImageCreateFromJpeg('vignette.jpg');
imagejpeg($src_im);
ImageDestroy($src_im);
?>

Placez votre fichier php et url2bmp.exe dans le même fossier sur votre serveur (ne marche que pour un serveur sous windows !). Tapez l'adresse suivante dans votre navigateur : http://domaine.com/votre dossier/creation_vignette.php?url=http://www.maximoi200.com

La première ligne du fichier va interagir avec url2bmp.exe en lignes de commande grâce à la fonction exec(). Comme vu plus haut, URL2BMP va créer le thumbnail de la page http://www.maximoi200.com et le placer dans vignette.jpg
La seconde ligne prévient le navigateur que le contenu qu'il va recevoir depuis le serveur est une image jpeg.
La troisième crée un objet PHP image temporaire à partir de vignette.jpg et la quatrième permet de renvoyer vers le navigateur cette image.
La dernière ligne sert à détruire l'image temporaire

Ceci est un exemple de base et peut servir de à d'autres applications plus complexes et performantes.

mardi 28 août 2007

URL2BMP ou comment transformer une page web en une image (jpg, bmp, png etc...)

Voici un utilitaire très intéressant. URL2BMP ("URL vers Bitmap") est un exécutable (sous windows) ne nécessitant pas d'installation préalable. Il vous permet de capter une page internet en saisissant son URL et d'en enregistrer l'aperçu dans un fichier image (format jpeg ou autre).

Pour moi, ses avantages sont les suivants :

  • Léger
  • Ne nécessite pas d'installation
  • Utilisable en lignes de commande : des paramètres réglables

L'application d'URL2BMP qui m'a particulièrement intéressé est la possibilité de générer automatiquement des thumbnails (prévisualitations de sites sous forme de vignettes) à la manière de grands sites spécialistes comme thumbshots.org. Il suffit juste de disposer d'un hébergement de site web sous windows avec PHP ! Grâce à la possibilité de commander URL2BMP en lignes de commande, PHP peut interagir avec l'utilitaire et générer des thumbnails à la demande.

Pour plus de détails sur la syntaxe d'utilisation d'URL2BMP (et pour le télécharger) visitez le site officiel : http://www.pixel-technology.com/freeware/url2bmp/

Voici un exemple pour l'utilisation d'URL2BMP en lignes de commande :

url2bmp.exe -file maximoi200.jpg -format jpg -wx 1000 -wy 800 -bx 100 -by 80 -notinteractive -url http://www.maximoi200.com


URL2BMP va générer une vignette nommée maximoi200.jpg au format jpg de dimensions 100x80 à partir de l'adresse http://www.maximoi200.com "photographiée" dans un cadre de dimensions 1000x800, et sans interaction avec l'interface de URL2BMP (en autonome).

Comment générer à la volée une vignette (thumbnail) d'un site avec URL2BMP et PHP (avec la librairie graphique GD) ?

cliquez ici pour voir une application PHP

mercredi 8 août 2007

Gestion des dates dans PHP : retrouver automatiquement une date par rapport à la date actuelle

Le but de ce billet est de montrer un traitement PHP que l'on peut mettre en place afin de récupérer une date antérieure en spécifiant la période écoulée entre celle ci et la date actuelle. Par exemple : quelle date était-il une semaine auparavant ? un mois auparavant ? Une application possible est le recensement d'actions qui se sont produites sur une semaine, comme par exemple le nombre de cartes de voeux virtuelles envoyées et lues comme ici.

Première partie : récupérer la date actuelle.

La fonction php date() permet de récupérer la date actuelle.

  • date('Y') retourne l'année courant à 4 chiffres (ex : 2007)

  • date('d') retourne le jour du mois (ex : 27)

  • date('m') retourne le mois de l'année (ex : 11)

  • date('d-m-Y') retournerait donc : "27-11-2007"

D'autres paramètres pour obtenir les secondes, les heures et bien d'autres options sont décrites ici.

Deuxième partie : récupérer la date passée.

Associé à ce que l'on appelle un "timestamp" (une référence à une date précise), la fonction date permet d'afficher les mêmes informations que nous avons vues précédemment mais pour une date différente de celle en cours.

On définit un timestamp grâce à la fonction mktime() (plus d'info ici)

La syntaxe de mktime est la suivante : mktime(heures, minutes, secondes, mois, jours, années)

A titre d'exemple :mktime(0,0,0,12,10,2007) retourne le timestamp du 10 décembre 2007 à 0h.

mktime comporte un grand avantage : il corrige tout seul les erreurs apparentes de date : mktime(0,0,0,11,31,2007) correspondrait théoriquement au 31 novembre 2007. Or, novembre ne comporte que 30 jours. Ainsi, le timestamp retourné correspond en réalité au 1 décembre 2007 (soit le 30 novembre +1 jour !).

Ainsi, on peut exploiter cette correction automatique des dates afin de remonter dans le temps. En effet, il suffit de définir la date actuelle, et d'en retirer 7 jours pour trouver la date d'il y a une semaine. mktime(0,0,0,date('m'),date('d')-7,date('y')) va donc retourner le timestamp du même jour de la semaine d'avant et ce même si ce jour n'est pas dans le même mois ni dans la même année

Enfin, on réutilise la fonction date afin d'afficher la date du jour correspondant à la semaine d'avant : date("d-m-Y",mktime(0,0,0,date('m'),date('d')-7,date('y')))

On utilisera de même date("d-m-Y",mktime(0,0,0,date('m')-1,date('d'),date('y'))) pour le même jour, le mois d'avant.

L'application dans une base de données SQL et PHP pourrait donc être : mysql_query("SELECT * FROM cartes_envoyées WHERE date_envoi>".date("d-m-Y",mktime(0,0,0,date('m')-1,date('d'),date('y')))) afin de retourner l'ensemble des enregistrements correspondant à des cartes envoyées depuis un mois !