# Qu'est-ce que PHP et que peut-il faire?

# Qu'est ce que PHP?

PHP (officiellement, ce sigle est un acronyme récursif pour PHP Hypertext Preprocessor) est un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications web. Il peut être intégré facilement au HTML.

Bien... mais qu'est ce que cela veut dire ? Un exemple :

Exemple #1 Exemple d'introduction

`<!DOCTYPE html>
<html>
<head>
<title>Exemple</title>
</head>
<body>
<?php
echo "Bonjour, je suis un script PHP !";
?>
</body>
</html>`

Au lieu d'utiliser des tonnes de commandes afin d'afficher du HTML (comme en C ou en Perl), les pages PHP contiennent des fragments HTML dont du code qui fait "quelque chose" (dans ce cas, il va afficher "Bonjour, je suis un script PHP !"). Le code PHP est inclus entre une balise de début `<?php` et une balise de fin `?>` qui permettent au serveur web de passer en mode PHP.

Ce qui distingue PHP des langages de script comme le Javascript, est que le code est exécuté sur le serveur, générant ainsi le HTML, qui sera ensuite envoyé au client. Le client ne reçoit que le résultat du script, sans aucun moyen d'avoir accès au code qui a produit ce résultat. Vous pouvez configurer votre serveur web afin qu'il analyse tous vos fichiers HTML comme des fichiers PHP. Ainsi, il n'y a aucun moyen de distinguer les pages qui sont produites dynamiquement des pages statiques. Un serveur web peut même être configuré pour traiter tous les fichiers HTML avec PHP, et il n'y a aucun moyen pour les utilisateurs de savoir que PHP est utilisé.

Le grand avantage de PHP est qu'il est extrêmement simple pour les néophytes, mais offre des fonctionnalités avancées pour les experts. Ne craignez pas de lire la longue liste de fonctionnalités PHP. Avec PHP, presque tout le monde peut commencer rapidement et écrire des scripts simples en un rien de temps.

Bien que le développement de PHP soit orienté vers la programmation pour les sites web, on peut faire bien plus avec PHP. Lisez donc la section Que peut faire PHP ? ou bien le tutoriel d'introduction pour passer directement à l'apprentissage de la programmation web.

## Que peut faire PHP ?

Tout. PHP est principalement conçu pour servir de langage de script coté serveur, il peut donc faire tout ce qu'un autre programme CGI peut faire, comme collecter des données de formulaire, générer du contenu dynamique, ou gérer des cookies. Mais PHP peut en faire bien plus.

Il y a deux domaines différents où PHP peut s'illustrer.

- Langage de script côté serveur. C'est l'utilisation la plus traditionnelle, et aussi le principal objet de PHP. Trois composants sont nécessaires pour l'exploiter : un analyseur PHP (CGI ou module serveur), un serveur web et un navigateur web. Vous devez exécuter le serveur web en corrélation avec PHP. Vous pouvez accéder au programme PHP avec l'aide du navigateur web. Tout ceci peut fonctionner sur une machine locale juste pour expérimenter la programmation PHP. Voyez la section d'installation pour plus d'informations.
- Langage de programmation en ligne de commande. Un script PHP peut être exécuter en ligne de commande, sans l'aide du serveur web et d'un navigateur. Il suffit de disposer de l'exécutable PHP. Cette utilisation est idéale pour les scripts qui sont exécutés régulièrement avec un cron sous Unix ou Linux ou un `gestionnaire de tâches` (sous Windows). Ces scripts peuvent aussi être utilisés pour réaliser des opérations sur des fichiers texte. Voyez la section sur l'utilisation de PHP en ligne de commande pour plus d'informations.

PHP est utilisable sur la majorité des systèmes d'exploitation, comme Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), Microsoft Windows, macOS, RISC OS et d'autres encore. PHP supporte aussi la plupart des serveurs web actuels dont Apache, IIS et bien d'autres. Et ceci inclut tous les serveurs web qui peuvent utiliser le binaire PHP FastCGI, comme lighttpd et nginx. PHP fonctionne sous forme de module, ou comme processeur CGI.

Avec PHP, les développeurs ont le choix du système d'exploitation et du serveur web. De plus, ils ont aussi le choix d'utiliser la programmation procédurale ou objet (OOP), ou encore un mélange des deux.

Avec PHP, ce n'est pas limité à la production de code HTML. Les capacités de PHP incluent la création de types de fichiers riches, tels que des images ou des fichiers PDF, le chiffrement de données et l'envoi d'e-mails. Il peut également facilement générer n'importe quel texte, tel que JSON ou XML. PHP peut générer automatiquement ces fichiers et les enregistrer dans le système de fichiers au lieu de les imprimer, formant ainsi un cache côté serveur pour contenu dynamique.

Une des forces les plus significatives de PHP est qu'il supporte énormément de bases de données. Écrire une page web faisant appel à une base de données devient terriblement simple, en utilisant une des extensions spécifiques aux bases de données (i.e., pour mysql), ou utilisant une classe d'abstraction comme PDO, ou une connexion à n'importe quelle base de données supportant la connexion standard ouvert via l'extension ODBC. Les autres bases de données peuvent utiliser l'extension cURL ou sockets comme CouchDB.

PHP supporte de nombreux protocoles comme LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (sous Windows) et encore d'autres. Il peut aussi ouvrir des sockets réseau, et interagir avec n'importe quel autre protocole. PHP supporte le format complexe WDDX, qui permet de communiquer entre tous les langages web. En terme d'interconnexion, PHP supporte aussi les objets Java, et les utilise de manière transparente comme objets intégrés.

PHP possède des fonctionnalités utiles dans le traitement de texte, incluant les expressions régulières compatibles Perl (PCRE), ainsi que bon nombre d'extensions et d'utilitaires pour analyser et accéder aux documents XML. PHP standardise toutes les extensions XML sur la solide base de libxml2, et étend le jeu de fonctionnalités en ajoutant le support de SimpleXML, XMLReader et XMLWriter.

Beaucoup d'autres extensions existent, catégorisées alphabétiquement et par catégorie. Et enfin, il existe des extensions PECL qui peuvent (ou pas) être documentées dans le manuel PHP, comme » XDebug.

Cette page n'est pas assez grande pour lister toutes les puissantes fonctionnalités de PHP. Lisez la section sur l'installation de PHP et étudiez la liste de fonctions pour avoir plus de détails sur toutes ces technologies.