Archives mensuelles : juillet 2012

Apprendre PHP par la pratique #3 : Les conditions

Salut !

Aujourd'hui, nous allons voir une partie importante et non négligeable de PHP, c'est une des fondations d'un langage dynamique : Les conditions.

Qu'est-ce qu'une condition? Une condition sert lorsque nous voulons en quelque sorte tester nos données, lorsque nous voulons voir si elles respectent certains critères. On appelle cela "conditions" car, si nos données ne respectent pas les critères requis, le programme va éxécuter un morceau de code différent de celui qu'il éxecuterais si les critères requis étais respectés. Les données doivent donc respecter certaines conditions !

Pour créer une condition en PHP et dans d'autres langages, il y a des symboles à connaître : ceux-ci vous permettent de travailler avec vos données et de tester différentes propriétés :

Symbôle Signification
== Est égal à
!= Est différent de
< Est inférieur à
> Est supérieur à
<= Est inférieur ou égal à
>= Est supérieur ou égal à

Attention ! Ne confondez pas "==" et "=", le premier signifie "Est égal à" et est utilisé dans les conditions et le second signifie "vaut" et est utilisé pour l'initialisation des variables ! 

En PHP, il existe deux types de conditions : le If .. Else et le switch, nous nous attarderons sur les deux conditions et essaierons d'en comprendre le fonctionnement !

If .. Else

Les anglophones ici présents auront -normalement- compris la signification de cette condition : Si .. Sinon. Je m'explique : la condition se divise en 2 blocs :

  • Le premier, si la condition est remplie : c'est ce bloc qui est exécuté.
  • Le second, si la condition n'est pas remplie : c'est ce bloc qui est exécuté.

Et comme un exemple vaut mieux que des mots, allons-y :


<?php

$compte_en_banque = 1600;

if($compte_en_banque == 1600){

echo "vous avez 1600€";

}

else{

echo "vous n'avez pas 1600€";

}

J'explique : la ligne if peut se traduire comme cela : "si $compte_en_banque est égal à 1600€, alors .." . Ici, $compte_en_banque vaut bien 1600€, c'est donc le bloc "if" qui est exécuté, le code affiche donc "vous avez 1600€". A l'inverse, si $compte_en_banque était différent de 1600€, il afficherait "vous n'avez pas 1600€".

Si vous n'avez pas compris, faites différents tests, changer la valeur de $compte_en_banque, vous verrez comment varie le message qui s'affiche !

Vous pouvez, maintenant, utiliser les différents symboles :


<?php

$compte_en_banque = 1650;

if($compte_en_banque <= 1600){

echo "vous avez moins de 1600€";

}

elseif($compte_en_banque >= 1600){

echo "vous avez  1600€ ou plus";

}

else{

echo "heuuu, tu as combien, au juste?";

}

Ici, deux nouveautés : tout d'abord, "elseif" : On utilise cette conditions lorsque on voudrait faire plusieurs if à la suite, c'est plus "propre" ! :)

ensuite, les symboles "<=" et ">=", qui signifie respectivement "inférieur ou égal à" et "supérieur ou égal à". On va "traduire" ce code : "Si compte en banque est inférieur ou égal à 1600, tu affiches "vous avez moins de 1600€", sinon si compte en banque est supérieur ou égal à 1600€, tu affiche "vous avez 1600€ ou plus" sinon, tu affiches "heuuu, tu as combien au juste?"". Comme vous avez vu, j'en ai profiter pour traduire le elseif en sinon si !

Ensuite, on peut aussir tester une variable pour voir si elle est vide (et définie par la même occasion ! ):


$t = "1";

if(emtpy($t)){

echo 'la variable t ne contient rien";

}else{

echo $t;

}

le mot clef "empty" nous permet de tester la présence de la variable et si elle est remplie ! Si vous aviez voulu tester le fait qu'elle soit bien initialiser, vous auriez fait comme cela :


$t = 1;

if(!empty($t)){

echo $t;

}else{

echo " t est vide";

}

Le "!" devant empty signifie "différent" et on l'utilise dans ce type de cas !

Enfin, nous allons voir que l'on peut combiner des conditions ou en "ouIfier" certaines (vous comprendrez, vous verrez ^^ ) :

</pre>
$compte_en_banque = $cb = 15000;

if($cb >= 1200 AND $cb <= 20000){

echo " vous avez entre 1200 et 20000€";
}

else{

echo "vous avez .. autres chose ! ";

}

Nous avons donc combiner deux conditions ici : "si $cb est supérieur ou égal à 1200 et inférieur ou égal à 20000€". 0 savoir que nous aurions pu remplacer AND par && !


$cb = 12;

$cb2 = 15000;

if($cb >= 1500 OR $cb2 >= 1500){

echo " vous avez plus de 1500€ sur au moins un compte ! ";

}

else{

echo "vous avez moins de 1500€";

}

Nous avons ouIfier une condition : "Si cb est supérieur ou égal à 1500 OU cb2 est supérieur ou égal à 1500€". Tout comme pour AND, OU aurait pu être changer par || (altGr+6 sous windows deux fois ! ).
Je crois que pour la condition if .. ele, c'est bon ! On passe à la prochaine ! :)

Switch

La condition switch est, à quelque chose près, un concentré de if /elseif avec un else ! je m'explique : Imaginez, vous voulez quantifier la richesse d'une personne (l'argent présent sur son compte en banque est stocké dans la variable $compte_en_banque) de façon a la mettre dans 8 catégories : à la rue, a la dure, pas facile, moyen, joli, pactole, millionnaire, milliardaire.  Avec un if/elseif, il faudrait faire ça :

</pre>
<?php

$compte_en_banque = $cb = 15000;

if($cb == 0){

echo "à la rue";

}

elseif($cb ==100){

echo "à la dure"

}

elseif($cb == 500){

echo "pas facile";

}

elseif($cb == 1500){

echo "moyen";

}

elseif($cb== 2500){

echo "joli";

}

elseif($cb== 5000){

echo "pactole";

}

elseif($cb == 1000000 ){

echo "Millionnaireé;

}

elseif($cb == 1000000000){

echo "milliardaire";

}

else{

echo "problème ! ";

}

J'ai mal à la main. Ecrire toutes ces conditions est .. barbant, répétitif et j'en passe ! PHP à donc intégré un système qui nous facilite un peu la tache, switch :


<?php

$cb = 1500;

switch($cb){

case 0:

echo "à la rue";

break;

case 100:

echo "à la dure";

break;

// ...

cas 1000000000:

echo "Milliardaire";

break;

default:

echo "problème";

}

explications : switch($cb) nous permet à la fois d'initialiser la condition et de lui donner la variable sur laquelle nous allons travailler(ici, $cb). Ensuite, nous avons le "bloc" de condition :

case 0: => Dans le cas ou $cb est égal à 0

Echo "à la rue"; => on affiche "à la rue"

break; => On termine l'instruction.

et ainsi de suite !

enfin, default: => Equivalent du else

echo "problème" => Ce qui est affiché quand rien ne correspond.

Ici, dans notre cas, cette condition afficherait : "moyen".

Voilà pour switch ! Passons au boléen (eh oui, il y a une surprise :p )

Les boléens

Les boléens sont des variables .. spéciales, en effet, elle ne peuvent prendre que deux valeurs : true ou false , et, pour les utiliser dans les conditions, il y a quelques subtilitées toujours utiles à savoir !

allez, l'exemple de ce qui nous paraitrait "logique" au premier abord :


<?php

$b = true; // C'est un boléen

if($b == "true" ){

echo "bouh";

}else{

echo "aaah";

}

Voilà un exemple tout bête, avec des messages d'erreurs ou de réussites tout aussi bêtes ;)

Maintenant, je vais vous montrer deux "techniques" qui marchent avec les boléens (je ne montre que le if)


$b = true;

if($b == true) //Sans guillemets, ça marche !

if($b)//Sans rien, ça marche !

Je vous explique rapidement :

  • Dans le premier cas, true n'est pas considéré comme une chaîne de caractères, mais une entité à part entière : pas besoin de guillemets !
  • Dans le second cas, la condition équivalente est "if($b == true)", tout simplement ! :)

Et voilà, c'est fini pour le cours !

TP

Nous reprenons le même code que le précédent TP (prenez la correction si vous ne l'avez pas fait et que vous ne voulez pas le faire ! )

L'utilisateur va rentrer donc une date de naissance (utilisez la technique des 3 champs, ce sera la seule manière de laquelle vous pourrez réaliser ce TP), vous devrez, si il a plus de 36 ans, qu'il est né un jour supérieur au 13 et à un mois supérieur ou égal à Avril, lui afficher un message lui affichant qu'il à gagner un gros lot !

Vous aurez besoin de tout ce que l'on a vu au tp d'avant et au conditions if..else et au mot clef AND (je vous aide trop là !!)

Bonne chance et à dans deux jours !!

Créer un fond d'écran animé pour votre iPhone4-4S

Bonjour à tous, aujourd'hui je vais vous expliquer comment créer votre propre fond d'écran animé.

  1. Vous aurez besoin de winterboard disponible sur la source BigBoss : http://apt.thebigboss.org/repofiles/cydia/
  2. D'un fichier texte et de plusieurs fonds d'écran de format 640 x 960.

Vous allez ouvrir le fichier texte, vous allez y coller ceci :

<?xml version="1.0" encoding="UTF-16"?>

<html><head>

<base href="Private/"/>

    <!--meta name="viewport" content="width=320, minimum-scale=1.0, maximum-scale=1.0"/-->

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <style>

        body {

            background-color: black;

            margin: 0;

            padding: 20px 0 0 0;

            height: 960px;

            width: 640px;

        }

        img {

            -webkit-transition-property: opacity;

       -webkit-transition-duration: 3s;

            position: absolute;

            width: 320px;

            height: auto;

        }

        img.fade-out {

            opacity: 0;

        }

        img.fade-in {

            opacity: 1;

        }

    </style>

</head><body style="color: black">

    <img id="one"/>

    <img id="two"/>

    <script>

        var images = ['1.png', '2.png', '3.png', '4.png', '5.png', '6.png',];

        var index = 0;

        var fade_in = one;

        var fade_out = two;

        fade_in.src = images[0];

        fade_out.src = images[images.length - 1];

        var fade = function () {

            fade_in.src = images[index];

            index = (index + 1) % images.length;

            fade_in.className = 'fade-out';

            fade_out.className = 'fade-in';

            var fade_tmp = fade_in;

            fade_in = fade_out;

            fade_out = fade_tmp;

            setTimeout(fade, 30000);

        };

        fade();

    </script>

</body></html>

  • Ensuite vous allez enregistrer votre fichier texte

Si il ne l'ai pas déjà, changez l'éxtantion et mettez la en .html

Et le plus important est que votre fichier soit nomé Wallpaper.html avec un "W" en majuscule!!! et oui c'est pointu ^^

  • Vous allez renomer vos fond d'écran en 1.png ,2.png ,3.png ,4.png ,5.png ,6.png et vous vous arrèterez à 6.png sinon vous devrez modifier votre fichier texte à la ligne : var images = ['1.png', '2.png', '3.png', '4.png', '5.png', '6.png',]; et ajouter un 7.png ect
  • Une fois vos wallpapers renomés vous allez les mettres dans un dossier que vous allez nomer Private avec un "P" majuscule.
  • Vous allez créer un autre dossier que vous allez nomer "nom de votre fond d'écran" .theme.
  • Pour finir,  vous allez vous connecter en SSH via iFunbox ou autre et vous rendre à : /var/stash/Themes."quelque chose" et coller votre dossier en .theme.
  •  Ensuite rendez vous dans Winterboard pour activer votre fond d'écran animé
  • Admirez

Cette technique n'est valable que pour iPhone 4 ou 4S sinon vous devrez changer votre fichier texte et la taille de vos images en entrant les bonnes dimensions

A savoir 320 x 480 pour iphone 3G et 3GS

Pour plus d'infos ou si vous avez des soucis laissez un commentaire ;-)