L’utilité du PHP est par exemple pour les traitements sur les fichiers, ici récupération des fêtes du jour dans un tableau JSON et traitement dans une page HTML du résultat.
<?
///////////////////////////////////////////////////////////////////////////////
// Version: 2.0 - AndroLogiciels - D'après Jérôme DESMOULINS //
// Description: //
// Ce script affiche, la ou les fêtes du jour //
// Pour l'utiliser il suffit de placer include("fete.php"); dans un script //
// Attention: le fichier fete.txt doit se trouver dans le repertoire //
// Adaptation (05/2014) andrologiciels : //
// Retourne un objet JSON contenant le tableau des fêtes du jour //
///////////////////////////////////////////////////////////////////////////////
//-- Récupèration de la date actuelle
$jour=date("d");
$mois=date("m");
$tab=array();
$tabtmp=array();
$nbfete=0;
//-- Recherche de cette date dans le fichier de données
$fp=fopen("fete.txt","r");
while ( ! feof($fp) )
{ $ligne=fgets($fp,255);
//-- On extrait le prénom fêté
$pos=strpos($ligne,';');
$prenom=substr($ligne,0,$pos);
$ligne=substr($ligne,$pos+1,strlen($ligne)-$pos);
//-- Le jour de cette fête
$pos=strpos($ligne,';');
$jourtrouve=substr($ligne,0,$pos);
//-- Le mois de cette fête
$moistrouve=substr($ligne,$pos+1,strlen($ligne)-$pos-2);
//-- Si on la trouve, on affiche la fête du jour
if (($jour==$jourtrouve) && ($mois==$moistrouve))
{ $nbfete=++$nbfete;
$tabtmp["fete"]=$prenom; //-- Contient la fête trouvée
array_push($tab, $tabtmp); //-- Ajoute à la liste des fêtes du jour la fête trouvée
unset($tabtmp); //-- efface le tableau temporaire
}
}
fclose($fp);
$tabtmp["nbfete"]=$nbfete;
$tabtmp["tabfete"]=$tab;
$jsonstring = json_encode($tabtmp);
echo $jsonstring; //-- Retourne le tableau JSON des fêtes du jour
//-- $jsonstring = {"nbfete":2,"tabfete":[{"fete":"Honore"},{"fete":"Weena"}]}
?>
Le fichier HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Affiche fête</title>
</head>
<script>
function DemandeFete()
{var request = new XMLHttpRequest();
request.onreadystatechange = function()
{if (this.readyState == 4) {
if (this.status == 200) {
if (this.responseText != null) {
var sFete=this.responseText;
//-- Conversion en doc HTML
var doc = document.implementation.createHTMLDocument("example");
doc.documentElement.innerHTML = sFete;
var resultat=doc.body.textContent;
resultat=resultat.trim();
//-- Traitement du JSON
var res="Pas de fête";
var json = JSON.parse(resultat);
var nbfete=json.nbfete;
for (var i = 0; i < nbfete; i++)
{if (res==("Pas de fête"))
res=json.tabfete[i].fete;
else
res=res+", "+json.tabfete[i].fete;
}
//-- Affichage du résultat
document.ajax.dyn.value= res;
}}}}
//-- Url d'obtention de(s) fête(s) retourne un tableau JSON de strucuture
//-- {"nbfete":2,"tabfete":[{"fete":"Honore"},{"fete":"Weena"}]}
request.open("GET", "http://andrologiciels.is-great.net/testfete.php", false);
request.send(null);}
</script>
<body onLoad="DemandeFete()"
style="background-color: rgb(255, 255, 204); color: rgb(0, 0, 0);">
<FORM name="ajax" method="POST" action="">
<p></p>
<p>Fête du jour :
<input type="text" name="dyn" size="32" value="">
</p>
</FORM>
</body>
</html>
Manipulation de dates en PHP :
<?php
//-- additionne nb jours à une date
$nb = $_GET["nb"]-0;
$maDate = date('d/m/Y', strtotime($nb.' day'));
$jour=date('d', strtotime($nb.' day'));
$mois=date('m', strtotime($nb.' day'));
echo '<br>Date du jour = '.date('d/m/Y').'</br>';
echo '<br>Date '.$nb.'='.$maDate.'</br>';
echo '<br>'.$jour.'/'.$mois.'</br>';
?>
Permet en passant en paramétre dans l’URL le nombre de jours (positif, négatif ou nul) de se positionner dans le calendrier. Exemple : testdate.php?nb=-1 retournera :
Date du jour = 30/05/2014
Date -1=29/05/2014
29/05
Divers présentation de dates en Français et en Anglais :
//-- Recherche de l'année $anactu=date('Y', strtotime($nb.' day')); //-- Récupération du jour et du mois actuel moins ou plus le nombre de jours voulu if ($j==-1 || $m==-1) {$jour=date('d', strtotime($nb.' day'))-0; $mois=date('m', strtotime($nb.' day'))-0; $timedate = $mois.'/'.$jour.'/'.$anactu; } else {//-- Formatage de la date désirée $timedate = $mois.'/'.$jour.'/'.$anactu; } //-- Formattage de la date en fonction de la langue if ($lg=='fr') { setlocale(LC_TIME, "fr_FR"); $jjour=strftime("%A",strtotime($timedate)); //-- %a = abrége Dim à Sam $mmois=strftime("%B",strtotime($timedate)); //-- %b = abrégé Jan à Dec $ddate=$jjour.' '.$jour.' '.$mmois; } else { setlocale(LC_TIME, "en_EN"); $jjjour=strftime("%A",strtotime($timedate)); //-- %a = abrége Dim à Sam $jjour=date('jS', strtotime($timedate)); $mmois=strftime("%B",strtotime($timedate)); //-- %b = abrégé Jan à Dec $ddate=$jjjour.' '.$jjour.' '.$mmois; }
Votre commentaire