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

CodeS-SourceS :: Derniers codes PHP ajoutés