mardi 11 septembre 2007

Convertir un nombre de secondes en jours, heures, minutes et secondes

Comme le titre le montre, dans ce tuto on va essayer de convertir un nombre de secondes en jours, heures, minutes et secondes.
Par exemple : On a une variable qui définit une durée de 38600 secondes, mais comme vous remarquez, cette durée aurait été plus claire et plus facile à retenir si elle était présentée en valeurs jours, heures, minutes et secondes , c'est à dire sous forme d'une date.
L'idée de ce tuto est d'apprendre à créer une fonction qui permettra de convertir le nombre de secondes en forme d'une date.

Alors au travail! :)

function transforme($time)
{
if ($time>=86400)
/* 86400 = 3600*24 c'est à dire le nombre de secondes dans un seul jour ! donc là on vérifie si le nombre de secondes donné contient des jours ou pas */
{
// Si c'est le cas on commence nos calculs en incluant les jours

// on divise le nombre de seconde par 86400 (=3600*24)
// puis on utilise la fonction floor() pour arrondir au plus petit
$jour = floor($time/86400);
// On extrait le nombre de jours
$reste = $time%86400;

$heure = floor($reste/3600);
// puis le nombre d'heures
$reste = $reste%3600;

$minute = floor($reste/60);
// puis les minutes


$seconde = $reste%60;
// et le reste en secondes

// on rassemble les résultats en forme de date
$result = $jour.'j '.$heure.'h '.$minute.'min '.$seconde.'s';
}
elseif ($time < 86400 AND $time>=3600)
// si le nombre de secondes ne contient pas de jours mais contient des heures
{
// on refait la même opération sans calculer les jours
$heure = floor($time/3600);
$reste = $time%3600;

$minute = floor($reste/60);

$seconde = $reste%60;

$result = $heure.'h '.$minute.'min '.$seconde.' s';
}
elseif ($time<3600 AND $time>=60)
{
// si le nombre de secondes ne contient pas d'heures mais contient des minutes
$minute = floor($time/60);
$seconde = $time%60;
$result = $minute.'min '.$seconde.'s';
}
elseif ($time < 60)
// si le nombre de secondes ne contient aucune minutes
{
$result = $time.'s';
}
return $result;
}




wala c tout :)
@+

PHPaul

lundi 10 septembre 2007

Extraire les métas tags d'une page HTML

Les "meta tags" font partie du code de vos pages. La plupart de ces balises sont inutiles pour le référencement, mais certaines d'entre elles sont quasi indispensables.

Dans ce tutoriel, on va essayer d'apprendre comment lire les metas tags (ou les balises métas) d'une page HTML.

Pour ceci, je vais vous présenter la fonction php qui nous sera utile.
get_meta_tags ( ) : cette fonction permet de récupérer les entêtes HTML (entre <head> et </head>) d'une page web.
Ceci pourrait être utilisé dans la cadre d'un annuaire par exemple, ou pour connaitre la langue d'un site sans y aller dessus ... bref, plein d'applications sont possibles à l'aide de cette fonction .

Je vous dans notre exemple le script qui permettra d'éxtraire les métas tags de nos pages :

<?php
// On définit l'adresse de la page à opèrer dans la variable '$page'
// cette valeur pourra provenir d'un formulaire par exemple
$page = 'http://www.site.com';

//on vérifie la disponibilité de notre page
//le @ devant la fonction get_meta_tags permet de ne pas retourner d'erreur si la réponse est false
if(!$meta=@get_meta_tags($page)){

echo 'Le lien que vous avez fournis est indisponible.';

}else{

//si aucune erreur n'est détecter, on peut extraire les informations meta
//une liste non exaustive : description, keywords, revisit-after, location, content-language, etc...
//la variable retourne sous forme de tableau chacun des ses informations.
//exemple :

$description=$meta['description'];
$keywords=$meta['keywords'];
$revisit=$meta['revisit-after'];
$locatio=$meta['location'];
$language=$meta['content-language'];
/* etc ... */

}
?>

Voilà, c'est tout pour ce tutoriel.
Bon apprentissage!
@ bientôt

PHPaul

dimanche 9 septembre 2007

Comment savoir si vos partenaires ont gardé vos liens sur leur site?

Faire un site c’est aussi le diffuser sur Internet. Un des meilleurs moyen reconnu est le partage de liens plus communément appelé, « échange de liens ». Le site A fait un lien qui pointe sur le site B qui lui-même fait un lien qui pointe sur le site A. Cela a pour apport de lier les sites entrent eux et d’augmenter le Rank (positionnement) des sites.

L’échange de liens est laborieux à construire; il faut contacter les webmasters d’autres sites, trouver les bonnes pages à croiser, modifier les sources des pages et maintenir l’échange sur le temps. C’est sur cette dernière partie que nous allons travailler.

Comment savoir si le webmaster n’a pas enlevé votre lien sur son site ??


1° La première étape consiste à connaître la page sur laquelle votre lien est placé. Cette page doit tout le temps être disponible car nous allons aller la chercher et l’aspirer pour pouvoir l’analyser.

<?php
$page_source
= "";

$fp=@fopen($page_source,"r");
if(
$fp) {
while(!
feof($fp)) {
$chaine .= fgets($fp,1024);
}
}
?>



La page où se trouve le lien sera au format http://www.lesite.com/la_page_ou_se_trouve_ton_lien
Nous allons dans un premier temps aspirer la page et placer tout simplement son contenu dans une variable.

2° La seconde étape consiste à regarder si le lien se trouve dans la page aspirée du site. J’ai vu sur Internet des scripts qui faisaient plus de 200 lignes pour faire cette analyse. PHP possède une fonction performante qui repère toute les occurrences correspondant à un masque donné : preg_match_all. Toutes les chaînes correspondant au masque sont capturées et sont écrites dans un tableau.

<?php

$masque
= '#href="(.*?)"#i';
preg_match_all ( "$masque", $chaine, $out, PREG_SET_ORDER );
?>


Le résultat se trouve dans le tableau $out

3° Troisième et dernière étape avec le test de vérification: regarder si le lien se trouve dans le tableau. Dans le script j’ai tenu à vérifier également combien de fois le lien se trouvait sur la page.

<?php

$lien_a_verifier
= '';
$i=-1;
$compte=0;
while (
$i < count($out))
{
$i++;
// affiche tous les elements du tableau
// vous pouvez decocher la ligne ci dessus pour avoir tous les elements du tableau
// echo $out[$i][1];
if($out[$i][1] == $lien_a_verifier) $compte++;
}
if (
$compte > 0 ) echo 'Le lien existe '.$compte.' fois';

?>


Le lien à vérifier doit correspondre à celui que vous avez donné à votre partenaire. Si vous désirez développer plus en profondeur ce noyau, vous devrez aussi vérifier tout type de lien. Car un webmaster peut écrire 1 lien avec des doubles quotes ou sans.

Ce bout de source montre comment il peut être facile en php avec quelques lignes de code de remonter une page Internet et d’en faire son analyse. Il est aussi d’une utilité évidente. Avoir des échanges de liens, c’est avant tout pourvoir les conserver sur le temps et ce script devrait vous y aider.

Source : http://www.phpsources.org/

samedi 8 septembre 2007

Upload d'image vers un serveur


Salut,
Aujourd'hui, dans cet article je vais essayer de vous présenter un système d'upload d'image vers un serveur tout en passant par le PHP.
Ce système ne comporte qu'un seul fichier "upload.php" .
Ce fichier sera composé de :
  • Formulaire pour selectionner l'image à uploader
  • Script pour contrôler l'image (taille, extension, dimensions, nom du fichier ...) et l'uploader
On commence par le formulaire :
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="posted" value="1" />
//pour permettre de vérifier qu'une requête vient d'être transmise par le formulaire
<input name="fichier" type="file" /><br />
<input type="submit" value="Uploader" />
</form>
==> Aperçu :


Puis on passe au script PHP qui va contrôler l'image et l'uploader après :

//----------------------------
// DEFINITION DES VARIABLES
//----------------------------

$target = 'fichiers/'; // Repertoire cible
$extension = 'gif';
// Extension 1 permise du fichier sans le .
$extension2 = 'png'; // Extension 2 permise du fichier sans le .
$extension3 = 'jpg'; // Extension 3 permise du fichier sans le .
$max_size = 250000; // Taille max en octets du fichier
$width_max = 1024; // Largeur max de l'image en pixels
$height_max = 768; // Hauteur max de l'image en pixels

//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------

$time = time();
$nom_file = $_FILES['fichier']['name'];
$tmp = $_FILES['fichier']['tmp_name'];

//----------------------
// SCRIPT D'UPLOAD
//----------------------

if(!empty($_POST['posted']))
{
// On vérifie si le champ est rempli
if(!empty($_FILES['fichier']['name']))
{
// On vérifie l'extension du fichier
if(substr($nom_file, -3) == $extension OR substr($nom_file, -3) == $extension2 OR substr($nom_file, -3) == $extension3)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);

// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload

if (move_uploaded_file ($_FILES['fichier']['tmp_name'] , $target.$time.'_'.$_FILES['fichier']['name'] ) )
{
// Si upload OK alors on affiche le message de réussite
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ',$time,'_',$_FILES['fichier']['name'], '<br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; echo '<b>URL :</b> <input type="text" value="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" size=38><br />';
echo '<hr />';
echo '<img src="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" /><br />';
}
else
{
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br/><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image echo '<b>Veuillez saisir une image d\'une taille inférieur à 1024*768</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<b>Votre image ne comporte pas l\'extension .gif , .png ou .jpg!</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}

Maintenant un bilan qui présente le contenu du fichier "upload.php" :


//------------------------------------
// Script réalisé par Samir.Paul.Ouahhabi
// Le 08/9/2007
// Licence GNU/GPL
// http://formation-php.blogspot.com/
// ideetek@gmail.com
//-------------------------------------

//----------------------------

// DEFINITION DES VARIABLES
//----------------------------

$target = 'fichiers/'; // Repertoire cible
$extension = 'gif';
// Extension 1 permise du fichier sans le .
$extension2 = 'png'; // Extension 2 permise du fichier sans le .
$extension3 = 'jpg'; // Extension 3 permise du fichier sans le .
$max_size = 250000; // Taille max en octets du fichier
$width_max = 1024; // Largeur max de l'image en pixels
$height_max = 768; // Hauteur max de l'image en pixels

//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------

$time = time();
$nom_file = $_FILES['fichier']['name'];
$tmp = $_FILES['fichier']['tmp_name'];

//----------------------
// FORMULAIRE D'UPLOAD
//----------------------


?>

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="posted" value="1" />
//pour permettre de vérifier qu'une requête vient d'être transmise par le formulaire
<input name="fichier" type="file" /><br />
<input type="submit" value="Uploader" />
</form>

<?php

//----------------------

// SCRIPT D'UPLOAD
//----------------------

if(!empty($_POST['posted']))
{
// On vérifie si le champ est rempli
if(!empty($_FILES['fichier']['name']))
{
// On vérifie l'extension du fichier
if(substr($nom_file, -3) == $extension OR substr($nom_file, -3) == $extension2 OR substr($nom_file, -3) == $extension3)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);

// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload

if (move_uploaded_file ($_FILES['fichier']['tmp_name'] , $target.$time.'_'.$_FILES['fichier']['name'] ) )
{
// Si upload OK alors on affiche le message de réussite
echo '<b>Image uploadée avec succès !</b>';
echo '<hr />';
echo '<b>Fichier :</b> ',$time,'_',$_FILES['fichier']['name'], '<br />';
echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; echo '<b>URL :</b> <input type="text" value="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" size=38><br />';
echo '<hr />';
echo '<img src="http://www.monsite.com/fichiers/'.$time.'_'.$_FILES['fichier']['name'].'" /><br />';
}
else
{
// Sinon on affiche une erreur système
echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br/><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image echo '<b>Veuillez saisir une image d\'une taille inférieur à 1024*768</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<b>Votre image ne comporte pas l\'extension .gif , .png ou .jpg!</b><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<b>Le champ du formulaire est vide !</b><br /><br />';
}
}
Bon, c'était tout pour cet article =)
Vous pouvez élaborer ce scripts en ajoutant un design et un compteur ...
D'ailleurs c'est ce que j'ai fait ici : DEMO

Enjoy it

PHPaul

vendredi 7 septembre 2007

Fonction de vérification d'Email

Bonjour !
Dans cette article je vais vous montrer une manière facile pour verifier une adresse Email tout en utilisant les RegEx PHP .

Maintenant vous vous demandez sûrement : Qu'est-ce Qu'un RegEx ?

Je vais essayer de vous donner une petite définition :
RegEx : abréviation de l'expression Anglaise Regular Expression
Les expressions régulières, généralement connues sous le nom de "RegEx" sont un ensemble de combinaisons principales qui sont censées pour permettre d'avoir une grande variété de contrôle de ce qu'on recherche dans une chaine de caractère. RegEx est employé beaucoup sous Unix, et est commun entre beaucoup de programmes.

Donc plus clairement, les RegEx vont nous permettre d'analyser une adresse Email donnée pour vérifier si elle convient à la forme connue des adresses emails (ex : personne@site.com)

Passons maintenant au travail.

function email_OK ($email)
// On dénonce le nom de la fonction

{
$Syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#' ;
//On donne la forme RegEx que doit avoir l'Email
if(preg_match($Syntaxe,$email))
// Et maintenant on compare le syntaxede l'Email donné '$email' avec la variable '$Syntaxe'
{
return true;
// si l'email convient est valide ça retourne une réponse positive
}
else
{
return false;
// sinon ça retourne une réponse négative

}


Maintenant avec cette fonction vous pouvez vérifier la validité d'un Email facilement tout en faisant :

if (email_OK($email))
{
echo ' Cette adresse Email est valide ' ;
}
elseif (!email_OK($email))
{
echo ' Cette adresse Email est invalide ' ;
}
Voilà c'est tout :)
J'espère que ce petit tuto vous sera utile
au revoir :)

PHPaul

mercredi 11 juillet 2007

Introduction à PHP

Avant de commencer je vous propose un vidéo bien utile mais qui est malheureusement en anglais :


Qu'est ce que PHP ?


PHP est un langage de script exécuté du côté (comme les scripts CGI, CGI, ...) et non du côté client (ne s'exécute pas sur votre ordinateur mais sur le serveur ...). La syntaxe du langage provient de celles du langage C , du Perl et de Java. Ses principaux atouts sont :
  • Une grande communauté de développeurs partageant des centaines de milliers d'exemples de script PHP ;
  • La gratuité et la disponibilité du code source (PHP est distribué sous licence GNU GPL) ;
  • La simplicité d'écriture de scripts ;
  • La possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGi, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML) ;
  • La simplicité d'interfaçage avec des bases de données (de nombreux SGBD sont supportés, mais le plus utilisé avec ce langage est MySQL, un SGBD gratuit disponible sur de nombreuses plateformes :Unix, Linux, Windows, MacOs X, Solaris, etc...) ;
  • L'intégration au sein de nombreux serveurs web (Apache, Microsoft IIS, etc.).
Origines de PHP

Le langage PHP a été mis au point au début d'automne 1994 par Rasmus Lerdorf. Ce langage de script lui permettait de conserver la trace des utilisateurs venant consulter son CV sur son site, grâce à l'accès à une base de données par l'intermédiaire de requêtes SQL. Ainsi, étant donné que de nombreux internautes lui demandèrent ce programme, Rasmus Lerdorf mit en ligne en 1995 la première version de ce programme qu'il baptisa Personal Sommaire Page Tools, puis Personal Home Page v1.0 (traduisez page personnelle version 1.0).

Etant donné le succès de PHP 1.0, Rasmus Lerdorf décida d'améliorer ce langage en y intégrant des structures plus avancées telles que des boucles, des structures conditionnelles, et y intégra un package permettant d'interpréter les formulaires qu'il avait développé (FI, Form Interpreter) ainsi que le support de mSQL. C'est de cette façon que la version 2 du langage, baptisée pour l'occasion PHP/FI version 2, vit le jour durant l'été 1995. Il fut rapidement utilisé sur de nombreux sites (15000 fin 1996, puis 50000 en milieu d'année 1997).

A partir de 1997, Zeev Suraski et Andi Gurmans rejoignirent Rasmus pour former une équipe de programmeurs afin de mettre au point PHP 3 (Stig Bakken, Shane Caraveo et Jim Winstead les rejoignirent par la suite). C'est ainsi que la version 3.0 de PHP fut disponible le 6 juin 1998.

A la fin de l'année 1999 la version 4.0 de PHP, baptisée PHP4, est apparue. PHP en est aujourd'hui à sa cinquième version.

SGBD supportés par PHP

PHP permet un interfaçage simple avec de nombreux systèmes de gestion de bases de données (SGBD), parmi lesquels :
  • Adabas D
  • dBase
  • Empress
  • FilePro
  • Informix
  • Interbase
  • mSQL
  • MySQL
  • Oracle
  • PostgreSQL
  • Solid
  • Sybase
  • Velocis
  • Unix dbm

CodeS-SourceS :: Derniers codes PHP ajoutés