Archive

Archives pour la catégorie ‘PHP’

PHP : programmer sans erreurs du type « notice »

J’en connais certains qui aiment avoir un code PHP qui ne génère aucune erreur du type « notice« . Une erreur notice, c’est lorsque, par exemple, on essaye de traiter une variable qui n’est pas initialisée :

//$bob = "pas initialisée, c'est un commentaire";
print $bob; // cela va générer une erreur de type notice

Il ne s’agit pas d’erreur au sens propre du terme. PHP est un langage de script, beaucoup moins rigoureux qu’un « vrai » langage, comme Java par exemple. S’accorder de telles libertés dans le code ne l’empêchera pas de fonctionner. Pour ma part, un code qui générerait d’innombrable erreur de ce type notice ne me dérangerait pas. Ainsi, une solution simple pour en finir avec elle consiste à changer le niveau du rapport d’erreur. Par exemple, en tout début de code, quelque chose comme :

error_reporting(E_ALL | ~E_NOTICE);

Ou dans le fichier php.ini :

error_reporting = E_ALL | ~E_NOTICE

Cependant, cela ne fait que masquer le problème – si tant est que ça en soit un -, puisque les erreurs de ce type continuent d’exister ; elles ne sont simplement plus affichée.

Pour bien faire, la vraie solution rigoureuse consistera alors à récrire son code de façon à ce qu’il n’en génère plus. Comme la plupart de ces erreurs sont souvent dues à des variables non initialisées que l’on utilise sans les tester, une solution simple consiste à s’assurer qu’elles ont bien une valeur avant toute chose. Par exemple, le code de tout à l’heure devient :

//$bob = "pas initialisée, c'est un commentaire";
if(isset($bob))
{
	print $bob; // cela va générer une erreur notice
}
else
{
	// faire autre chose
}

On comprend que répéter ce code à chaque fois peut être facilement très fastidieux… Mais on peut s’éviter cette peine grâce à la petite fonction suivante :

function getIfSet(& $var, $default = null)
{
	if(isset($var))
	{
		return $var;
	}
	else
	{
		return $default;
	}
}

Cette fonction prend en premier argument la variable que l’on souhaite utiliser, mais dont on ignore si elle est initialisée ou non. Le deuxième argument, qui est optionnel (et est à null par défaut), est la valeur qui sera renvoyée s’il se trouve que la variable n’est pas initialisée :

//$bob = "pas initialisée, c'est un commentaire";
print $bob; // cela va générer une erreur de type notice
print getIfSet($bob); // cela ne génère pas d'erreur et n'affiche rien
print getIfSet($bob, "pas initialisée"); // cela affiche "pas initialisée"

Cette fonction sera à coup sûr très utile à tous ceux qui souhaitent débarrasser leur code de ce type d’erreurs !

Categories: PHP Tags: ,

Facebook lance HipHop, un compilateur PHP

Cela n’aura pas échappé aux plus observateurs : Facebook est construit − plus ou moins − en PHP.

PHP : code interprété ou pseudo-interprété. Sur de petites, moyennes et grandes applications, c’est un langage parfait. Mais sur une application de la dimension de Facebook, qui est une énorme et gigantesque application utilisée par des millions d’utilisateurs simultanément, il est nécessaire de l’optimiser.

Facebook a mis au point une sorte de compilateur pour PHP, baptisé HipHop, qui transforme le code PHP en C++. Grâce à un système en plusieurs couches, le code que l’on écrit en PHP peut ainsi être au final compilé et gagner en rapidité.

HipHop_transformation_processTout ceci est censé être publié en OpenSource, pour le plus grand bonheur de tous, contrairement à certains autres produits bien connus…

Categories: PHP Tags: , , ,

Nouvelle version de Media Library Gallery

Nous avons le plaisir de vous annoncer qu’une nouvelle version du plugin WordPress Media Library Gallery a été publiée !

Ce plugin vous permet d’afficher toutes les images que les posts possèdent en attachement. Idéal pour créer automatiquement une galerie avec toutes les images que vous avez postez sur votre blog !

http://www.cybwarrior.com/wp-content/plugins/downloads-manager/img/icons/winzip.gif download: Media Library Gallery (209.66KB)
added: 13/12/2009
clicks: 1350
description: The very magical WordPress plugin that displays a gallery of all your image attachments! See the related Media Library Gallery WordPress page for more information. La merveilleuse extension WordPress qui affiche une galerie de toutes vos images attachées ! Reportez-vous à la page WordPress associée à Media Library Gallery pour plus d'informations.

Categories: PHP Tags: , ,

Comment mettre facilement en cache le résultat d’une fonction PHP

Voici une petite fonction PHP permettant de mettre facilement en cache ce que renvoie une autre fonction afin de ne pas avoir à l’appeler à chaque fois. Cela permet d’optimiser grandement la vitesse d’exécution des scripts lorsque ceux-ci reposent sur des traitements longs.

Pour l’utiliser, il suffit d’inclure le code du fichier lib_cache (http://www.cybwarrior.com/?file_id=73) et d’appeler la fonction cache de la façon suivante :

function pause($a)
{
sleep($a);

return ’stop’;
}

print cache(3600 * 24, ‘pause’, array(10));

Le premier argument désigne en secondes la fréquence (ou plutôt la période :-) ) à laquelle exécuter la fonction – dans notre cas, tous les jours.

Le deuxième argument est le nom de la fonction. Mais il est aussi possible de passer la méthode d’un objet : c’est très souple. Le fonctionnement repose sur la fonction call_user_func_array. Reportez-vous à la documentation pour plus d’informations.

Le troisième argument est le tableau des arguments à passer à la fonction, le premier élément contenant le premier argument, et ainsi de suite.

Un quatrième argument facultatif peut être ajouté, qui doit être une conjonction des constantes CACHE_REFRESH et CACHE_NO_REFRESH, qui respectivement force le rafraîchissement du cache ou au contraire renvoie le contenu même s’il est expiré.

Résultat : dans notre cas, la fonction prend 10 secondes à s’exécuter. Mais appelée avec la fonction cache, celle-ci n’est en fait exécutée complétement qu’une seule fois par jour, et le reste du temps, le résultat de la fonction contenu en cache est renvoyé.

http://www.cybwarrior.com/wp-content/plugins/downloads-manager/img/icons/default.gif download: PHP Cache (1.68KB)
added: 08/10/2009
clicks: 1062
description: Une fonction très utile pour mettre en cache le résultat d'une fonction PHP, afin d'optimiser son code et le rendre plus rapide en ne l'appelant à chaque fois. A very useful function which store in a cache file what an other function returns, in order to optimize the code and make it quicker.

Categories: PHP Tags: ,

Résoudre le problème de liens avec FPDF/phpToPDF

Pour créer des documents PDF avec PHP, il existe la bibliothèque FPDF. Et pour créer des documents PDF avec FPDF encore plus facilement, il existe phpToPDF.

Cependant, en utilisant cette dernière afin de créer un sommaire inséré de manière automatique dans le document, je rencontrai un problème faisant que chaque lien créé après le sommaire voyait sa zone décalée d’une page : le lien était bien ajouté et était cliquable, mais sa zone se situait une page avant.

Après avoir longuement cherché, je suis parvenu à résoudre le problème en modifiant le code de phpToPDF ainsi :

Dans la fonction insertTOC(), modifier par :

//grab it and move to selected location
$n=$this->page;
$n_toc = $n – $tocstart + 1;
$last = array();
$last_links = array();

//store toc pages
for($i = $tocstart;$i <= $n;$i++)
{
$last[]=$this->pages[$i];
$last_links[] = $this->PageLinks[$i];
}

//move pages
for($i=$tocstart – 1;$i>=$location-1;$i–)
{
$this->pages[$i+$n_toc]=$this->pages[$i];
$this->PageLinks[$i + $n_toc] = $this->PageLinks[$i];
}

//Put toc pages at insert point
for($i = 0;$i < $n_toc;$i++)
{
$this->pages[$location + $i]=$last[$i];
$this->PageLinks[$location + $i] = $last_links[$i];
}

Categories: PHP Tags: ,

PHP – Les chaînes de caractères

This entry is part 7 of 7 in the series PHP - Tutoriel

  1. Apostrophes ou guillemets ?
  2. Caractères spéciaux
  3. Here Doc
  4. Accolades

Apostrophes ou guillemets ?

Un chaîne de caractères est contenue soit entre des guillemets (« ), soit entre des apostrophes ().

Les deux lignes suivantes sont donc equivalentes :


print "Hello!";		// Avec des guillemets

print 'Hello!';		// Avec des apostrophes

Quelle est la différence ? La voici : en utilisant des guillemets, les variables contenues à l’interieur de

la chaîne seront évaluées et remplacées par leur valeur à l’instant t.

Ainsi :


$nom = "Raphaël";

print "Je m'appelle $nom";	// Sortie -> Je m'appelle Raphaël

print 'Je m'appelle $nom';	// Sortie -> Je m'appelle $nom

Caractères spéciaux

Comme en C, on peut utiliser l’anti-slash (\) pour echapper des caractères spéciaux, comme par

exemple, un apostrophe ou des guillemets :


print 'It\'s Sunday and I\'ll go to the Church';	// It's Sunday and I'll go to the Church

print "Et il lui cria : \"Bouh!\" et il sursauta";	// Et il lui cria : "Bouh!" et il sursauta

Il existe aussi des caractères qui ont une signification particulière, comme le montre le tableau ci-dessous.

On appelle ceci des séquences echapes.

Les caractères spéciaux en PHP

Sequences

Signification

\n

Nouvelle ligne (LineFeed). Caractère ASCII 10

\r

Retour chariot (Carriage Return). Caractère ASCII 13

\t

Tabulation. Caractère ASCII 9

\\

Anti-slash lui même

\$

Caractère $. Valable uniquement pour les guillemets (")

Here Doc

Ce qui est bien avec PHP, c’est que l’on peut écrire une chaîne de caractères sur plusieurs lignes :


$html = "

	<html>

	<head>

	<title>Ma page Web</title>

	</head>

	<body>

	<h2>Welcome to Paradise!</h2>

	</body>

	</html>

";

Par contre si on veut pouvoir être tout à fait libre d’utiliser n’importe quel caractère dans une chaîne,

comme les guillemets par exemple, on peut utiliser la syntaxe Here Doc heritée de Perl (que j’aime

bien :-) . On débute la chaîne par <<< et un identifiant quelconque. On écrit ensuite notre texte,

puis on termine en ré-écrivant l’identifiant choisi en DEBUT d’une nouvelle ligne, sans oublier le point-virgule

bien sur.

Par exemple :


$html = <<< MON_DOC_HTML

	<html>

	<head>

	<title>Ma page Web</title>

	<meta name="description" content="Ma Page Oueb">

	<meta name="keywords" content="paradise,web,page,perso">

	</head>

	<body>

	<h2 align="center">Welcome to Paradise!</h2>

	</body>

	</html>

MON_DOC_HTML;

Attention cependant : avec cette syntaxe, les variables sont toujours interprétées.

Accolades

Dans une chaîne avec guillemets, les accolades permettent de specifier des noms de variables comme si elles

se situées hors de cette chaîne.


$var = "N'est ce pas ?";

print "Quelle complexitée! ${'v' . 'a' . 'r'}";		// Une concatenation est effectuée 

							// lors de l'analyse

Les accolades sont également utiles pour passer des tableaux mutli-dimensionnels (que nous verrons plus tard) :


$ar = array();

$ar[] = array("fou");

print "C'est $ar[0][0], non ?";		// Provoque une erreur

print "C'est {$ar[0][0]}, non ?";	// OK!
Categories: PHP Tags:

PHP – Les commentaires

This entry is part 6 of 7 in the series PHP - Tutoriel

Les commentaires permettent de donner des indications dans le script, afin de faciliter sa compréhension au

lecteur.

Ils sont particuliérement utiles lorsque l’on travaille à plusieurs sur un même site web, ou bien lorsque

l’on doit parfois relire un script écrit il y a plusieurs mois.

Certaines personnes, faisant surtout partie de la communauté Linux, soutiennent qu’un code écrit clairement,

sans astuces de programmeurs n’a pas besoin de commentaires. Chacun son école…

La syntaxe des commentaires en PHP est à la fois inspirée du C, du C++ et du système d’exploitation Unix/linux.

Voici les differents types. Les commentaires sont ecrits en vert :



# Début du script

/*

	Voici un script merveilleux

	qui sert à donner l'heure à 

	laquelle la page à été chargée

*/

print date("H:M:S");		// On écrit l'heure sous le format H:M:S

# Fin du script

Tous ce qui se trouve à l’interieur d’un commentaire est tout simplement ignoré par l’interpréteur.

Les commentaires avec /* et */ sont hérités du langage C. Comme on le voit, ils

permettent de commenter du code sur plusieurs lignes. Ce type de commentaire peut être utile lors de la

mise au point d’un script. On peut avoir besoin d’ignorer plusieurs lignes de code, sans pour autant avoir

envie de les supprimer.

Les commentaires en // (qui nous viennent du C++) s’achevent avec la fin de la ligne,

comme pour les commentaires débutant avec #. Ces derniers sont souvent utilisés dans des fichiers

de configuration qui initialisent de nombreuses variables (dans des scripts comme phpBB, phpNuke, phpMyAdmin, etc…),

ceci afin de garder un style Unix.

Categories: PHP Tags:

PHP – Les variables

This entry is part 5 of 7 in the series PHP - Tutoriel
  1. Introduction
  2. Variables dynamiques
  3. Références
  4. Types de données

Introduction

Une variable sert à stocker des données temporaires. C’est à dire que ces données seront perdues entre

deux appels du script.

En PHP, la syntaxe des variables est très étendue, car elle est inpirée de plusieurs langages, notament

du Perl et du C.

Ainsi, les Perliens ne seront pas dépaysés, puisqu’en PHP, les variables débutent par le symbole $

(dollars). Les noms des variables peuvent être composés des lettres de l’alphabet, de nombres, et du caractère

de soulignement.

Voici des noms de variables corrects :


$i

$premier_passage

$telephone1

$telephone2

Pour affecter une valeur à une variable, on utilise l’opérateur = (égal).

Le PHP est un langage non typé. Il n’y a donc pas de déclaration de type comme il peut y en avoir en C.

Il suffit d’indiquer la variable, et de lui affecter une valeur :


$password = "jamesbond007";

print $password;

Cette exemple affiche :


jamesbond007

On peut aussi affecter la valeur d’une variable à une autre variable :


$var1 = "JO";

$var2 = $var1;

print $var2;

Cela affiche :


JO

On peut aussi affecter une même valeur à plusieurs variables d’un seul coup, comme en C :


$var1 = $var2 = $var3 = "Waza";

echo $var1, $var2, $var3;

Résultat :


WazaWazaWaza

Variables dynamiques

En C, on entend par variable dynamique (ou plutôt par tableau dynamique), une variable qui peut avoir une

taille modifiable dans le temps.

En PHP, le dynamisme des variables n’a pas le même sens. Il s’agit en fait de pouvoir jouer avec les noms des

variables.

En effet, regarder cet exemple :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

print ${"citation"};

Résultat :


T'es comme le H de Hawai, tu sers à rien :-) 

En peut faire encore plus fort :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

$var = "citation";

print $$var;

Cela nous donne encore :


T'es comme le H de Hawai, tu sers à rien :-) 

Ou encore mieux :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

$var = "citation";

$finalement = "var";

print $$$finalement;

Nous pourrions multiplier les exemples à l’infini (ou presque : ça dépend de la memoire et de la place disponible

sur la pile de votre machine).

Vu comme ça, cela peut paraitre inutile. Mais il peut y avoir quelques applications interessantes, notament

avec l’utilisation de boucles.

Références

Le PHP permet d’établir des références entre variables. Cela peut paraitre similaire aux pointeurs du C,

mais il y a quelques petites différences. En fait, comme il est écrit dans le manuel officiel de PHP, « les

références sont des alias dans la table des symboles. Le nom de la variable et son contenu ont des noms

différents, ce qui fait que l’on peut donner plusieurs noms au même contenu. »

Pour établir une référence, on utilise l’opérateur & (et commercial, ou esperluette :-) devant la variable.

Ainsi :


$hello = "Hello";

$bonjour = "Bonjour";

echo $hello, $bonjour, "<br>";

$hello = &$bonjour;

echo $hello, $bonjour, "<br>";

$hello = "Buenos Dias";

echo $hello, $bonjour, "<br>";

$hello = "Guten Tag";

echo $hello, $bonjour, "<br>";

Résultat :


HelloBonjour

BonjourBonjour

Buenos DiasBuenos Dias

Guten TagGuten Tag

On se rend compte qu’après la ligne $hello = &$bonjour;, on peut utiliser soit la variable $hello,

soit la variable $bonjour, cela revient au même : elles désignent le même contenu.

Cela peut sembler inutile, mais lorsque nous étudierons les fonctions, cela sera plus parlant.

Types de données

Bien que le PHP soit non typé, les données ont cependant des types. Ainsi, on distinguera 8 de "8",

4 de 4.00.

Il existe 6 types de données :

Les types de données dans PHP

Type

Description

Exemple

integer

Nombres entiers

8

string

Chaînes de caractères

"8"

double

Nombre à virgules flottante (nombres décimaux)

8.00

boolean

Valeur logique, soit true, soit false

true

array

Tableaux

array(1, 2, 3);

integer

Nombres entiers

8

object

Objets

class myclass {};

new myclass();

Nous étudierons les types boolean, array et object plus loin.

Pour connaitre le type d'une donnée, on utilise la fonction gettype(). Cette fonction ne prend

qu'un seul argument qui doit être la variable ou la donnée à tester.

Voici un exemple :


class myclass {};

echo	gettype(8), "<br>",

	gettype("8"), "<br>",

	gettype(8.00), "<br>",

	gettype(true), "<br>",

	gettype(array()), "<br>";

	gettype(myclass()), "<br>";

Ce qui nous donne :


integer

string

double

boolean

array

object

Note : on a utilisé la fonction echo sur plusieurs lignes, ce qui est possible et simplifie

les choses.

On peut aussi modifier le type d'une variable. En C, on appelle ceci le casting.

Pour modifier le type de la variable lui même, on utilise la fonction settype(). Voici la syntaxe de

cette fonction, d'après le manuel PHP :


int settype(mixed var, string type)

Le premier argument, var, peut être de n'importe quel type (c'est le but). Le deuxième argument

doit être une chaîne de caractères representant le type dans lequel convertir la variable. La fonction renvoi

true si l'opération de transtypage a été réussie, sinon false.

Exemple :


$pi = 3.141592654858;

echo $pi, "<br>";

settype($pi, "integer");

echo $pi, "<br>";

Résultat :


3.14159265458

3

On peut aussi modifier le type à l'aide de la syntaxe suivante :


$var = (type) $var

On place le type entre parenthèses (sans guillemets) devant la variable.

Ainsi :


$var = 3.14159265458;

$new = (integer) $var;

echo $new;
Categories: PHP Tags:

PHP – Installer Apache, PHP4 et MySQL sous Windows

This entry is part 2 of 7 in the series PHP - Tutoriel
  1. Installation d’Apache
  2. Installation de PHP4
  3. Installation de MySQL

Le PHP est generalement couplé à un serveur du type Apache, et à une base de données MySQL. L’utilisation
et l’installation de ce type d’application est très commune sous Unix ou Linux, mais assez mal documentée
pour les utilisateurs de Windows, d’où cette page.

Installation d’Apache

Comme on l’a vu, PHP s’execute coté serveur. Donc, il nous faut trouver un « serveur ». Windows
est normalement fourni avec Microsoft Personnel Web Serveur. On peut aussi utiliser Microsoft
Internet Information Server
.
Mais il existe une solution alternative qui est Apache. L’utilisation d’Apache est la plus
répandue et il y a fort à parier que votre hébergeur utilise celui-ci. Vous serez ainsi plus proche
des conditions réels d’utilisation de vos scripts.

Pour installer Apache, il vous faut tout d’abord le télécharger à l’adresse suivante :
http://httpd.apache.org/dist/httpd/binaries/win32/.
La version que j’utilise est la 1.3.12.
Une fois téléchargé, lancez l’executable et suivez les instructions (jusque là, c’est pas bien
compliqué :-) )

Une fois que tout les fichiers ont été copiés, vous devez vous munir d’un éditeur de texte simple,
comme le bloc-notes par exemple.
Vous devez alors éditer le fichier nommé httpd.conf. Il est placé dans le répertoire conf
de Apache (Si vous avez choisi d’installer Apache dans le répertoire par défaut, le répertoire est
le suivant : C:\Program Files\Apache Group\Apache\conf).

Vous devez trouver une ligne qui ressemble à celle-ci :


ServerAdmin you@your.address

Vous devez remplacer par votre adresse :


ServerAdmin webmaster@cybwarrior.com

Ensuite, changez la ligne suivante :


#ServerName new.host.name

En :


ServerName localhost

Maintenant, fermez le fichier. Nous allons tester si Apache fonctionne.
Pour cela, vous devez sélectionner le racourci qui s’est normalement créé dans le menu démarrer
de Windows : Start Apache.
Une sorte d’émulation MS-Dos s’execute. La fenêtre doit rester ouverte, ne la fermez pas.
Tout en gardant cette fenêtre ouverte, lancez votre navigateur préféré : Netscape, Internet Explorer,
Opéra (bouah!)…
Saisissez l’URL suivante : http://localhost/.
Tada! La page Web suivante doit normalement s’afficher :

Ca fonctionne! Le serveur web Apache est installé sur ce site!

Pour arreter Apache, vous devez executer le racourci Stop Apache.

Installation de PHP4

Maintenant que Apache est installé, il ne manque plus que PHP. Il vous faut pour cela l’archive regroupant
PHP 4.0.0 pour Win32. Elle est disponible sur http://www.php.net/ dans la rubrique
Downloads

« Dé-zipez » tout les fichiers dans un répertoire de votre choix, par exemple C:\PHP4.
Dans ce répertoire, un fichier nommé php.ini-dist devrait se trouver. Renommez le en php.ini et
déplacez le dans le répertoire Windows (en général, C:\Windows, C:\Win98…)

Vous devez également déplacer les deux fichiers nommés Msvcrt.dll et php4ts.dll dans
le répertoire system de Windows (en général, C:\Windows\System). Si une erreur se produit
lors du déplacement du fichier Msvcrt.dll comme Msvcrt.dll est utilisé par le système, pas
de panique : ça veut juste dire qu’il n’y a pas besoin de déplacer ce fichier.

Et maintenant, rebelote : vous devez, à l’aide de votre éditeur de texte, éditer à nouveau le fichier
httpd.conf.
Cherchez la section suivante :


#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Please read the file README.DSO in the Apache 1.3 distribution for more
# details about the DSO mechanism and run `apache -l' for the list of already
# built-in (statically linked and thus always available) modules in your Apache
# binary.
#
# Note: The order in which modules are loaded is important.  Don't change
# the order below without expert advice.
#
#LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll
#LoadModule cern_meta_module modules/ApacheModuleCERNMeta.dll
#LoadModule digest_module modules/ApacheModuleDigest.dll
#LoadModule expires_module modules/ApacheModuleExpires.dll
#LoadModule headers_module modules/ApacheModuleHeaders.dll
#LoadModule proxy_module modules/ApacheModuleProxy.dll
#LoadModule rewrite_module modules/ApacheModuleRewrite.dll
#LoadModule speling_module modules/ApacheModuleSpeling.dll
#LoadModule status_module modules/ApacheModuleStatus.dll
#LoadModule usertrack_module modules/ApacheModuleUserTrack.dll

Ajoutez la ligne suivante, à la fin :


LoadModule php4_module c:\php4\sapi\php4apache.dll

Dans la mesure où vous avez dé-zipé PHP dans le répertoire C:\PHP4.

Maintenant, cherchez la section suivante :


#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
# For example, the PHP3 module (not part of the Apache distribution)
# will typically use:
#
#AddType application/x-httpd-php3 .phtml
#AddType application/x-httpd-php3-source .phps

Vous devez ajouter les lignes suivantes :


AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

C’est lignes spécifient les extensions qui vont permettrent de différencier vos scripts PHP des
autres fichiers. Si vous voulez que vos pages soient des .bob, ils n’y a qu’à le rajouter ici.

Nous allons maintenant tester si tout fonctionne correctement. Pour cela, créer un fichier que
vous nommerez par exemple info.php et écrivez simplement ces trois lignes à l’interieur :


<?php
phpinfo();
?>

Ce fichier doit être situé dans le répertoire htdocs de Apache. Si vous avez installé Apache au chemin par défaut, ce sera C:\Program Files\Apache Group\Apache\htdocs.

Lancez Apache, puis votre navigateur Web préferé. Saisissez l’URL suivante dans la barre d’adresse :
http://localhost/info.php
En toute logique, la page Web suivante doit apparaitre (il n’y a ici qu’une partie) :

PHP Version 4.0.0

Installation de MySQL


Dernière étape : l’installation de MySQL qui fera de PHP un outil puissant.
Comme pour Apache et PHP, vous devez disposez de MySQL. Rendez-vous pour cela à l’adresse suivante :
http://www.mysql.com/ et téléchargez la version adéquate pour Windows.

Vous devez alors dé-ziper tout les fichiers dans un répertoire de votre choix sur votre disque, par
exemple, C:\mysql.

Vous devez alors éditer de fichier de commandes MS-Dos (les .bat). Appellez le premier
start.bat ou demarrer.bat, bref, comme vous voulez. Ecrivez les lignes suivantes
à l’intérieur :


c:\mysql\bin\mysqld-shareware.exe --language=french

Dans la mesure où c:\mysql est le répertoire de votre choix.

Dans la même logique, vous devez créer un autre fichier de commandes que vous nommerez stop.bat ou
arreter.bat.
Ecrivez les lignes suivantes à l’interieur :


c:\mysql\bin\mysqladmin.exe -u root shutdown

Ça y est! Le tout est joué. Pour lancer MySQL, executez le fichier Start.bat, pour l’arreter,
le fichier Stop.bat.
Bien sur, vous pouvez aussi créér 2 racourcis : un pointant vers mysqld-shareware.exe et l’autre vers
mysqladmin.exe dont vous modifierez les propriétés. C’est même plus simple…

Voila! Vous êtes désormais prêt à réaliser des pages Web dynamiques et efficaces.

Categories: PHP Tags:

PHP – Fonctionnement

This entry is part 3 of 7 in the series PHP - Tutoriel

Inclusion du code

Un script PHP n’est rien d’autre que du code écrit dans un fichier texte. Aucune compilation n’est necessaire,
puisque ce langage est interprété (donc plus lent que les JSP).
Si vous avez definit dans le fichier httpd.conf que les extensions des scripts PHP sont .php,
alors vos scripts PHP doivent obligatoirement se trouver dans des fichiers ayant pour extension .php
si vous voulez que ceux-ci soit normalement interprétés.
Mais ce n’est pas tout. Le code doit se trouver au sein de balises HTML spéciales pour pouvoir être analysé
par l’interpreteur. Suivant la configuration du fichier php.ini, vous pourez utilisez l’une des
syntaxes suivantes :

  • <?php [Mon code PHP] ?>
  • <? [Mon code PHP] ?>
  • <SCRIPT language="PHP"> [Mon code PHP] </SCRIPT>
  • <% [Mon code PHP] %>
  • La syntaxe la plus utilisée est la première (<?php et ?>), car elle permet
    d’assurer une portabilité excellente du code lors d’un changement de version du PHP.

    Un des avantages majeures qu’a le PHP face aux CGI écrits en C ou en Perl, c’est que celui-ci peut être directement inclus
    dans un document HTML!
    Ainsi, il est tout à fait courant de rencontrer des scripts PHP ayant la structure suivante :

    <!-- Nom du fichier 'index.php' -->
    <HTML>
    <HEAD>
    <TITLE>Bienvenue sur le site de Titou la Bibine :-) </TITLE>
    </HEAD>
    
    <BODY>
    <H2 align="center">Bienvenue sur le site de Titou la Bibine :-) </H2>
    <?php
    print "Vous êtes notre 50000 visiteurs";
    ?>
    </BODY>
    </HTML>
    

    Lorsque un client, c’est à dire un internaute, va vouloir consulter la page ci-dessus nommée index.php,
    le serveur Apache va s’apercevoir que l’extension du fichier est .php.
    Il va alors envoyer le document à l’analyseur PHP, qui va interpréter toutes les lignes de codes situées dans
    les balises adequates (c’est à dire entre <?php et ?>). Dans notre cas, le
    script va tout simplement écrire la phrase Vous êtes notre 50000 visiteurs dans le document.
    Une fois toutes ces opérations effectuées, Apache va transmettre le document au client (ouf! parce que ça faisait
    un bon moment qu'il attendait ce client :-) ).
    Ensuite, si le client s'amuse à analyser le code HTML, voici ce qu'il va découvrir :

    <!-- Nom du fichier 'index.php' -->
    <HTML>
    <HEAD>
    <TITLE>Bienvenue sur le site de Titou la Bibine :-) </TITLE>
    </HEAD>
    
    <BODY>
    <H2 align="center">Bienvenue sur le site de Titou la Bibine :-) </H2>
    Vous êtes notre 50000 visiteurs
    </BODY>
    </HTML>
    

    On constate que le code PHP est inacessible au client, ce qui fait que rien ne permet au client de savoir
    que la page qu'il lit est en fait un script PHP, si ce n'est l'extension .php du document.

    Categories: PHP Tags: